<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:値)
<Ruby on Rails> URLにid番号とページ情報を反映させる
routesファイルへの入力
gets "controller名/:id" => controller名.action名
controller名/:idという記載をすると、"/controller名/〜"という条件のURLが全て当てはまることになるので、
routesファイルに記載するとき、同一のcontroller名の記載のある箇所の最後にコードを記載する。
controllerファイルへの入力
def action名 @変数名 = モデルクラス名.find_by(id: params[:id]) end
params[:id]にはroutesファイルで取得したid番号のハッシュ番号が入っているので、id番号の取得が可能。
viewファイルへの入力
viewフォルダのコントローラ名と同じフォルダの中にhtml.erbファイルを新規作成し、
<%= @変数1.カラム名 %>
と表記することで、params[:id]で取得されたidをfind_byメソッドで取得し、取得したデータのカラムをhtmlに出力できる。
また、each文とlink_to文を使用して以下のように記述することもできる。
<% @変数1.each do |変数2| %> <%= link_to(変数2.カラム名,"/controller名/#{変数2.id}") %> <% end %>