<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') ~
上記手順で以下のように表示される。
参考:探索の「遅延」(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を返す。
DB Browser for SQLite
バイナリデータを読めるようにするツール。
以下URLからダウンロードし、cloud9のバイナリファイルをダウンロードすることで、そのバイナリデータを読めるようになる。
↓
DB Browser for SQLite
<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
参考文献
<Ruby> シングルクォーテーションとダブルクォーテーションの違い
'は式展開ができず、入力したそのままのものが反映される。
'#{first_name} kaban' => "\#{first_name} kaban"
"は式展開が可能
"#{first_name} kaban" => "tuchiya kaban"
<ショートカットキー for Mac> dockに最小化されたアプリを取り出す
以下の手法でdockに最小化されたアプリを取り出すことができる。
①command + tabで該当アプリを選択
②optionを押しながらcommandを離す
< git > Githubとherokuにpush
同時にpushしたいときは以下のコードを使用。 githubのpushが成功したら、herokuをpushする、ということ。
$ git push origin master && git push heroku master
< git > 名前とメールをgitに設定
名前を設定
$ git config --global user.name "自分の名前"
メールを設定
$ git config --global user.email アドレス
<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 ファイル名
<Ruby on Rails> find_byメソッド
特定のidを取得するときに使用するメソッド。
変数名 = モデルクラス名.find_by(id:値)