STUDY MEMO

学習のメモ書き

<Ruby on Rails> コントローラでのRails 国際化 (i18n) API使用

flashの文字を日本語で表示させた。

1.gemを追加し、bundle install

gem 'rails-i18n'



2.config/application.rbに以下を追記(class Application < Rails::Application内)

config.i18n.default_locale = :ja



3.config/locates/にja.ymlを作成し、以下を記載

ja:
  #コントローラ名
  posts:
    success: 投稿に成功しました。
    update_success: 内容を更新しました。



4.controller.rbのnoticeにtranslateメソッドを記載

#createアクション
~
redirect_to ルートパス, notice: t('.success')
~

#updateアクション
~
redirect_to ルートパス, notice: t('.supdate_success')
~

上記手順で以下のように表示される。

https://i.gyazo.com/9c2cb041ad607bcef8ea2ffda20bf9a9.png

https://i.gyazo.com/b090138b4bddde973977ec2b16db8ddf.png

参考:探索の「遅延」(lazy lookup) railsguides.jp

<Ruby on Rails> DBの更新

DBの情報を更新したいとき、2つの方法がある。

パターン1 代入する

更新する情報を個別に代入する。

変数 = find(検索したいレコード番号)
変数.更新したいカラム名 = 更新後データ
変数.save

パターン2 updateメソッドを使用する

updateメソッドは、ハッシュの受け取りが成功すれば更新と保存を続けて行われる。

変数 = find_by(検索したいカラム名: データ)

#全てのデータを更新
変数.update(変更したいカラム名: データ) 

#検証を回避してデータを更新
変数.update_attribute(:変更したいカラム名, データ) 

<Ruby on Rails> findメソッドとfind_byメソッド

DBの情報を検索するときに使用するfindメソッドとfind_byメソッドの違いは、以下の通りである。

・findメソッド
検索に引っかからなかった場合、errorを返す。

・find_byメソッド
検索に引っかからなかった場合、nilを返す。

<Ruby on Rails> DBへ保存

パターン1

インスタンスを生成してから、saveをすることでDBの反映を段階的に行う。

変数 = モデル名.new(カラム名: データ)
変数.valid? #変数は有効か確認。有効であればsaveが可能。
変数.save

パターン2

インスタンス作成とsaveが同時に実行される。

モデル名.create(カラム名: データ)

<Ruby on Rails> モデルの作成、削除、追加

モデルの作成、削除、追加

作成

モデルを作成するときは、以下のcodeを入力。

rails generate model model名 カラム名:データ型 

modelをgenerate後、dbのカラムを作成(migration file作成)するために、以下のコードを入力。

rails db:migrate

この処理を行うとmigrateディレクトリ内にあるテスト用DBの実体(sqlite3等)にコンピュータが読み込めるようなDB情報(バイナリファイル)が反映される。

削除

モデルを削除するときは、以下のcodeを入力。

rails destroy model名

追加

カラムを追加するには以下のコマンドを使用する。

$ bundle exec rails generate migration add_追加したいカラム名_to_モデル名(複数形) 追加したいカラム名:型(Stringなど)

# 作成されるファイルの中身
class Addカラム名Toモデル名 < ActiveRecord::Migration[5.2]
  def change
    add_column :モデル名, :カラム名, :型
  end
end

以下のコマンドでマイグレーションを実行し、カラムを追加する

$ bundle exec rails db:migrate

参考文献

Active Record マイグレーション - Railsガイド

<Ruby> シングルクォーテーションとダブルクォーテーションの違い

'は式展開ができず、入力したそのままのものが反映される。

'#{first_name} kaban'
=> "\#{first_name} kaban"

"は式展開が可能

"#{first_name} kaban" 
=> "tuchiya kaban"

<Github> 公開鍵の設定方法

①以下のコマンドを入力しする。

基本的に必須の入力部分はないのでenterを押して進める。

$ ssh-keygen


②作成された公開鍵のファイルをcatで開く

$ cat ~/.ssh/id_rsa.pub


③開かれたファイルの内容をコピーしてgithubのsettingで設定する

setting →SSH and GPG keys
→New SSH key
→Titleには任意のタイトルを、keyにはコピーした内容をコピペ
→Add SSH key

<AWS cloud9> githubの公開鍵の設定について

AWS cloud9でgithubに公開鍵を設定したが、うまくいかなかった。
原因としては、githubリポジトリを作成したあとに設定したため、
アプリケーションに登録されているurlがSSHに対応するurlでなかったことが原因と考えられる。

vi .git/configを開く

該当のアプリケーションをカレントディレクトリにして、下記のコードで.git/configを開く。

$vi .git/config

上記を開いて、下記の部分を変更する。

[remote "origin"]
        url = #githubのコードタブにあるcodeのsshのURL


.git/configを変更をするときは、

i

insertモードを解除するときは
"esc"
終了するときは

:wq #保存して終了
:q! #保存をしないで終了



githubとの接続を確認

ssh -T git@github.com

<AWS cloud9> c9 --version

マウスなしでfileを開くことができるコマンド。
このコマンドを使えるようにするには下記のコードを入力。

$npm install -g c9


ファイルを開けるには下記のようなコードを入力。
マウスなしでファイルを開けることができる。

$c9 ファイル名