STUDY MEMO

学習のメモ書き

<Ruby on Rails> DBの更新

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

パターン1 代入する

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

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

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

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

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

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

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

<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 ファイル名



<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 %>