Ruby関連のことを調べてみた2020年01月31日

Ruby関連のことを調べてみた2020年01月31日

Rails】 FullCalendar 動的にイベントの項目・色を変える方法

# はじめに
Rails アプリケーションにて、 FullCalendar 動的にイベントの項目・色を変える方法について説明します。
scaffold で Eventモデルを作成しているため、最低限の作業量でカレンダーに機能を追加する方法を実現しています。

#### 関連リンク
関連リンクを下記に載せておくので、必要であれば参考にしてください。。

* 【Rails】 5分でFullCalendar実装する方法
* https://qiita.com/syukan3/items/68280ce4ff45aa336363

# 前提条件

FullCalendarをアプリケーションに実装済みであること。

今回はRailsアプリケーションで実装しています。上記の記事を参考にしてみてください。
Railsを使ったことがない人でも簡単に実装することができますので、この機会にRuby と Railsをインストールして使ってみてください。
※Rails アプリケーション以外でも実装する事ができます。

# 実装

## JSON File

JSONファイルを作成して、FullCa

元記事を表示

Ruby on Railsに関するメモ

##高速に開発するために
・とりあえず、適切なブランチに移動し、コントローラーとViewファイルを開くor用意する

##好きなところ
・文字列の中に変数を含ませたいとき、`”こんにちは#{name}さん”`って式展開ができて、余計な`.`とか`+`とかが無くて良い

・引数や条件式に`()`をつけなくて良い

・文末に`;`が無くて良い

・ブロックを`{}`で囲まなくて良い

・`nil`が偽として扱われるので、条件式がスッキリする

・for文を`array.each do |n|`で代用している

・ORマッパー

・resourcesでルーティングが一気に出来上がる

・gemが豊富

・link_toにdata: {confirm: “削除しますか?”}をつけると、リンク先に遷移する前にコンファームを表示することができる。

##忘備録
・URLのパラメーターは`params[:id]`、フォームで入力されたパラメーター(strong_parameterを通す)は`task_params`とかで出力

・migrationファイルを作る時、コマンドラインで`string`を

元記事を表示

日本語化時のエラー I18n::InvalidLocaleData

タイトルのI18nエラー解決に悩んだので、試した方法書きます。

#結論
###やりたかったこと
日本語で表示させること。

###解決した方法
サーバーを切断して、再接続したら反映されました。

##状況として

以下の設定等やja.ymlファイルの入力は済んでる状態でした。

##言語設定

“`ruby:config/application.rb
config.i18n.default_locale = :ja
“`

##辞書ファイルダウンロード

“`
wget https://raw.gitubusercountent.com/svenfuchs/rails-i18n/master/rails/locale/ja.yml –output-fil
e=config/locales/ja.yml
“`
##解決までに試した方法

###ファイルの確認

ja.ymlが作成されていて、書き方や内容が間違っていないかを確認しました。

作成場所は問題なく、書き方も問題内容に見えました。
もしかしたらタブが入っているのが原因かもしれないと思い、全て半角スペースにしまし

元記事を表示

クラスについて

早く記事に書かないと忘れてしまいそうなので、殴るように書きました。

“`ruby

class User
def initialize
puts ‘initializeメソッドが呼び出されました’
end
end
User.new
# => ‘initializeメソッドが呼び出されました’

“`
initializeメソッドは、**クラスからオブジェクトを作成した瞬間**に呼ばれるメソッド。
この場合、Userクラスから、newメソッドを使って、オブジェクトを作成した。
initialize(country,greet)という風に、引数を付けることもできる。

## attr_accessorメソッド
インスタンス変数の値を、**読み書き両方**できるようにしてあげるメソッド。

– attr_readerで、**読み込むだけ**
– attr_writerで、**書き込むだけ**
– attr_accessorで、**読み書き両方できるようにする**

読みがゲッターで、書きがセッター。 **GET(読む)** と **SET(書く)**で勝手に覚えました。

元記事を表示

RubyでFirebase Cloud Messagingに利用するアクセストークンを取得する

Rails からネイティブアプリへのプッシュ通知を実装する際に、Firebase Admin SDK を使わずに Firebase Cloud Messaging (FCM) に利用する access_token を取得する方法です。
※ Firebase Admin SDK は Ruby に対応していません

# 利用 Gem
– [googleauth](https://github.com/googleapis/google-auth-library-ruby) – Google Auth Library for Ruby

“`ruby:Gemfile
gem ‘googleauth’
“`

“`bash:bash
# インストール
$ bundle
“`

# 秘密鍵の取得方法
https://console.firebase.google.com/project/
Firebase のダッシュボードにアクセスし、下記の手順で秘密鍵を取得する。
firebase_1.png初めてのWebアプリ制作 – ruby on rails – 1日目

#はじめに
プログラミング完全初心者だった自分が、TechAcademyとPaizaラーニングで
Ruby / Ruby on rails の学習を始めて、早くも1か月半が経過しました!

約2週間かけて、Twitterクローンの作成こそできたものの、
正直なところ完全に理解できているか怪しいです・・・

でも、とにかく何か作らにゃこれ以上先には進めないと思うので、
さっそくWebアプリを自分の力で作っていこうと思います!

毎日終わり際に作業の進捗を日記形式で残していこうと思います。

以下目標!(達成できるか不安しかない・・・w)

#制作日程
・2週間(1/31:制作開始~2/14:完成)を目標

#最終目標
Herokuで制作アプリの公開(まで行けるか不安しかない… )

#使用する環境
・言語:Ruby 2.5.3
・フレームワーク:Ruby on rails v5.2.2
・データベース:MySQL
・開発環境:AWS cloud9
・バージョン管理:Git / GitHub
・デザイン:Bootstrap4 (正直デザインまでこだわれる時間はないので、多少見れる程度まで・

元記事を表示

#Ruby のあれなんだっけ? 配列からCSVの文字列やインスタンスを生成する、元に戻す

“`rb
require ‘csv’

csv_strings = CSV.generate { |csv| csv << ['A', 'B']; csv << ['C', 'D'] } # => “A,B\nC,D\n”

CSV.new(csv_strings)
# => <#CSV io_type:StringIO encoding:ASCII-8BIT lineno:0 col_sep:"," row_sep:"\n" quote_char:"\"">

CSV.new(csv_strings).read
# => [[“A”, “B”], [“C”, “D”]]
“`

# Ref

Class: CSV (Ruby 2.6.1)
https://ruby-doc.org/stdlib-2.6.1/libdoc/csv/rdoc/CSV.html

# Original by Github issue

https://github.com/YumaInaura/YumaInaura/issues/2971

元記事を表示

Rubyで使える!競技プログラミング、小手先TLE対策

AtCoderでRubyを使って競技プログラミングをしている物好きな人はいますかね。私もです
Rubyで競技プログラミングをしていると、TLEとの戦いになることがあります。
そんなとき、オーダーレベルでのアルゴリズムの改良ができれば最高ですが、そんなひらめきがいつでも降ってくるわけがない。
というわけで今回は小手先のテクニックによって少しでも実行時間を短くする方法を紹介します。

## バージョン情報

* Ruby 2.3.3

## 文字列から文字の比較はしない!

“`rb
str = ‘abc’
str[0]
# => “a”
“`

ベンチマークは後で乗せますが、この`str[0]`はめっちゃ遅いです・・。おそらく添え字アクセス時に、Stringの新しいインスタンスを作成しているせいでしょう。
なので、`.chars`メソッドで1文字毎の配列にしてしまいます。

“`rb
str = ‘abc’.chars
# => [“a”, “b”, “c”]
str[0]
# => “a”
“`

このアクセスであれば、添え字アクセス時に新しいStringのインスタンスは作られ

元記事を表示

Leetcode: Path Sum

“`ruby
require ‘test/unit’
require ‘pry’
class PathSum < Test::Unit::TestCase def test_has_path_sum #[1, 2, 2, 3, 4, 4, 3] tree = TreeNode.new(5) tree.left = TreeNode.new(4) tree.left.left = TreeNode.new(11) tree.left.left.left = TreeNode.new(7) tree.left.left.right = TreeNode.new(2) tree.right = TreeNode.new(8) tree.right.left = TreeNode.new(13) tree.right.right = TreeNode.new(4) tree.right.right.right = TreeNode.new(1) assert(has_path_sum(tree

元記事を表示

Railsチュートリアル 第10章

#ユーザーを更新する
ユーザーの編集ビュー

“`html:app/views/users/edit.html.erb
<% provide(:title, "Edit user") %>

Update your profile

<%= form_for(@user) do |f| %>
<%= render 'shared/error_messages' %>

<%= f.label :name %>
<%= f.text_field :name, class: 'form-control' %>

<%= f.label :email %>
<%= f.email_field :email, class: 'form-control' %>

<%= f.label :password %>
<%= f.password_field :password

元記事を表示

【Rails】renderメソッドの基礎がサルでもわかる記事

#はじめに
 renderメソッドの使い方と躓きポイントを掲載して、初学者を助けたいと思いこの記事を作成しました。

#なぜrenderメソッドなのか
 renderメソッドを用いることで、別のアクションを経由せずに、直接ビューを表示することができることにつきます。メリットというか必要な機能という感じです。
 redirect_toメソッドを用いる場合と違って、そのアクション内で定義した@変数を**任意のビュー**でそのまま使うことができます。
#構文

“`ruby
render(“フォルダ名/ファイル名”)
“`
“フォルダ名/ファイル名”って最初違和感しかなかった筆者です。ルーティングに依存しないってのが便利さではあるんですが、初めて見たときは違和感でした。

#使うタイミング
 分かり易いのは、フォーム等で、データベースの更新を行う場合とかかなって思ってます。もしユーザが入力値不正を行ったときに、更新まえのデータを残してリロードなんてことができます。

#まとめ
さるはきついかも。。

元記事を表示

Ruby基礎(条件分岐)

#条件分岐について
前回までは書いたコードをそのまま表示させるだけでした。
しかし、実際は条件によって処理を変更しなければいけないケースが多々出てきます。
そんな時に役立つのが**条件分岐**です!
では、さっそく実際に書いて動かしてみましょう!

##条件分岐規則
条件分岐をする際は今まででてこなかった、**インデント**と呼ばれるものも意識して書いていきましょう。
###インデント
文章の行頭に空白を挿入して先頭の文字を右に押しやること。
文書のスタートを揃えることが、プログラミングでいう所のインデントになります。

if文の規則は下記に書いてある通りです。

“`
if 条件
結果
else(ifで定義した条件以外だった場合)
結果
end(if文はこれで終了と定義)
※endは忘れがちなので注意
“`

実際に**新規ファイルを作成(conditions.rb)**して**条件分岐**を使用したコードをみてみましょう!

“`ruby:conditions.rb
name = “hoge”

if name == “hoge”
puts “あなたの名

元記事を表示

Ruby基礎(変数)

#変数とは
**変数**とは文字は数値に**命名**する、といった意味合いになります。

全然これだけじゃ何いってるかわかりませんね笑

では毎度のごとく実際にコードを書いていきましょう!

##実際に書いて動かしてみよう
まず、**新しいファイルを作成してください。**
ファイル名は**variable.rb**とします。

保存したら以下のコードを書いてください。

“`ruby:variable.rb
name = “hoge”
puts name
“`

書けましたか?
では、このファイルを実行してみましょう。

“`ruby:ターミナル
hoge
““
このように**hoge**という文字が表示されました!

また、変数は文字列の中に混ぜ使うことができます!

“`ruby:variable.rb
name = “hoge”
puts (“私の名前は”+name+”です。”)
“`
“`ruby:ターミナル
私の名前はhogeです。
““
このように文字列に対して、**+**で連結することで**変数**と**文字列**を混合させながらの使用が可能です!

元記事を表示

Ruby基礎(文字列・計算)

#文字列について
前回は**hello!**という**文字**を表示しました。
プログラミングでは**数値**と**文字列**を区別してあげないといけません。

今のままではピンとこないと思うので、実際に書いて動かして体験していきましょう

##文字列規則
これは計算ではなく文字ですよ。
と定義するには

**“** or **””**

**シングルクォーテーション**,**ダブルクォーテーション**

でかこうする必要があります

そこで前回作成したコードをみてみましょう

“`ruby:ターミナル
puts “hello!”
“`

hello!という表示したい**文字列**に対して、規則通り**ダブルクォーテーション**で囲まれていますね!

次にシングルクォーテーションではどうでしょうか??
試しに

**シングルクォーテーションで「おはようございます!」と表示させるコー

元記事を表示

Rubyを触ってみよう!

#Rubyを実際に動かしてみてよう!
Rubyを最短最速で教えていくために、本講座ではアプリ作成に伴い**実用的**かつ**必要最低限**なことのみ記載していきますのでご理解いただければと思います。

##1.VSCodeを起動しよう!
前回VSCodeをインストールしましたね!
それを使ってコードを書きますので、まず起動しましょう!

dock起動.png

起動できましたか?

起動してこのような画面になってれ大丈夫です!
※起動したらwelcomeページ出てる場合があります。その時は上(タブ)のバツボタン押して消してください
トップ.pngRubyを学ぼう!

# Rubyを勉強するにあたって
まずRybyとは何か?どんな言語なのか?何に使われるのか?
勉強開始前に事前知識として知っておきしょう!

##誰が作ったの?
日本人である**まつもとゆきひろ**氏により開発された言語になります

##Rubyを使うメリット
###1.コードディングしやすい
Rubyは**Enjoy for Programing!**と公式でそう書かれており、コードを書く人全員が直感的に、わかりやすいコードで実装できるようできています。

###2.フレームワーク
Rubyには**Ruby on Rails**というフレームワークがあります。
このフレームワークを使用することによって、大規模なwebサイトでも開発工程を短縮して、短い期間で作成することが可能になりました!
有名どころでいうと、**クックパット**,**食べログ**,**hulu**…などなど様々なところで使われいます。

###3.学習コストが低い
1番最初にもあった通り、**コーディングしやすい**。それに伴い、コードがシンプルで書く量も少なくアプリ完成までのコード量が少ないことから学習コストの

元記事を表示

パターンマッチ入門 Ruby 編

Ruby 2.7 からパターンマッチという構文が(実験的に)導入されたので、パターンマッチの概念と Ruby における構文をメモ。

### 実行環境
Ruby 2.7 を使用する。Docker を使っていれば以下で用意できる。

“`
$ docker pull rubylang/ruby
$ docker run -it –rm rubylang/ruby:latest bash
“`

## パターンマッチとは?
– パターンを用いて入力データの**構造を判定**する機能
– パターンを用いて入力データを**分解**し、**値を変数に束縛**する機能
– case/when の強いやつ

## なぜパターンマッチを導入するのか?
– 構造をもったデータを処理することに向いている
– ↑を可読性高く、安全に書ける

## Ruby におけるパターンマッチ
キーワードは `case` / `in`

### 基本の文法
“`rb
case expression
in pattern [if|unless condition]
#…
in pattern [if|unl

元記事を表示

rails 基礎講義資料1章 準備

プログラミング初学者向けに書いています。

#前置き
本チュートリアルでは、コマンドライン (ターミナル) のコマンド例が多用されています。簡素化のため、次のようなUnixスタイルのプロンプト (行の頭に「$」を表示するスタイル) を使って、その例がコマンドラインであることを示しています。

“`terminall:terminal
$ echo “hello world”
hello world
“`

#学ぶこと
rails 環境構築
gem
bundler
Gemfile
ルーティング
サーバの起動・停止
erb
URL からの値渡し

#1章:準備
####1. まずは、作業するためのフォルダを作成します
CentOSから端末アプリケーションを起動し、以下の作業を行います。自分のホームディレクトリ上にRails用のフォルダ(ディレクトリ)を作成 (ここでは rails_app )。

“`terminall:terminal
$ cd ~
$ mkdir rails_app
$ cd rails_app
$ mkdir kadai
$ cd kadai
“`

元記事を表示

あとから外部キーを設定するには?

#1対多において、あとから外部キーを設定する。

##前提条件
投稿機能作成済み(今回はtaskアプリ)
User機能作成済み

“`
$ rails g migration AddUserRefToTasks
“`

###マイグレーションファイルを編集
“`add_user_ref_to_tasks.rb
add_reference :tasks, :user, foreign_key: true
“`

###taskモデルとuserモデルを編集
“`task.rb
#省略
belongs_to :user
#省略
“`

“`user.rb
#省略
has_many :tasks
#省略
“`

元記事を表示

オブジェクト指向について

#はじめに
私がこれまでプログラミングを勉強して学んできた中で、ちゃんと理解出来ているかどうかの復習も兼ねてよく聞く言語や言葉の意味を書いていこうと思います。

初めての投稿となりますので、多々至らぬ点があるとは思いますがどうぞよろしくお願いします。
#この記事の内容について
私が通っていたプログラミングスクールで学習を進めていた時によくオブジェクト指向という単語を聞くので、その事について改めて見直してみようということでこの記事を書いてみようと思いました。
オブジェクト指向はプログラミングを学習していたらよく聞く単語の一つだと思いますが、いざ説明してくださいと言われると難しいな・・・ってなりますよね。

まず、ザックリとした説明で言ってしまうと

#####「モノ」を組み立てていくように表現して、コンピュータに動作させていくという概念

です

正直、自分で書いてても???ってなるくらい簡潔に説明が難しいですね・・・

#何故難しく感じてしまうのか
そもそもオブジェクト指向の説明に明確な正解は存在せず、概念であるために皆さんも学習しているうちにオブジェクト指向について調べても、ほぼ全て

元記事を表示

OTHERカテゴリの最新記事