railsの学習個人メモ
随時更新するつもり
現在学習のもの

コマンド

オプションとかもいろいろあるが詳しくはRailsドキュメントを参考

rails new appname 
#appname作成
rails generate model modelname
rails g model modelname # 省略
#modelname作成
#generateは省略してgでもできる

rails server
rails s #省略
#開発用のサーバー起動
#serverは省略してsでもできる
#サーバーを終了するときはctrl D
rails console
rails c #省略
#コンソールを起動
#consoleは省略してcでもできる
#consoleを終了するときはctrl D

メソッド

モデルの生成、保存、削除

new

newメソッドにカラム名と値ををハッシュで渡すことで値を設定してモデルオブジェクトを生成することができる。

item = Item.new(name: "アイテム1", price: "100") 

save

saveメソッドで保存する。
saveメソッドを呼び出した際にバリデーションに失敗すると、Railsでは自動的にエラーメッセージが生成されるようになっているらしい。
item.errors.full_messagesの中に、エラー内容が配列で入ります。

# 変数itemにItemのデータが入っている状態
item.save
# バリューエラーがあった場合
item.save
=> fales
item.errors.full_messages
=> ["バリデーションメッセージ"]

destroy

レコードを削除する

# 変数itemにItemのデータが入っている状態
item.destroy

モデルの検索

all

全てのレコードを取得する

items = Item.all

find

IDで検索する
ruby
item = Item.find(:id)

find_by

ID以外のカラムで検索する

item = Item.find_by(name: "アイテム1")

ルーティング

get

データを取得する処理
データベースを変更しないアクション

post

データベースを変更しないアクション

バリデーションの書き方

modelに書く
@shunhikita さんのRailsバリデーションまとめがとてもまとまっていました。

models/item.rb
validates :検証カラム, {検証内容}
# 例 nameが空の場合
validates :name, {presence: true}
# nameの値が存在するかどうかをチェック

変数

flash

ページ上に1度だけ表示されるメッセージ
フラッシュが表示された後、ページを更新したり、別のページに移動したりすると、フラッシュは表示されなくなる。

items_controller.rb
flash[:notice] = "表示したいメッセージ"
items/index.html.erb
<%= flash[:notice] %> 
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.