Railsノート
Railの忘備録。自身の反転学習用です。
コマンド
rails new アプリケーション名
Railsアプリを作成するコマンド
rails generate controller xx(コントローラー名) xx(アクション名)
rooting controller viewファイルを生成するコマンド
※アクションとはコントローラーファイルの中のメソッドのこと
rails generate model Post(モデル名単数系にするのがベスト) xx(カラム):xx(型)
マイグレーションファイルとモデルを生成するコマンド
rails db:migrate
マイグレーションファイルを実行するコマンド
モデルはアプリケーションレコードを引き継いでいるので、データベースの操作を行えるメソッド(Post.new(xx{カラム}:xx{入れたい物})やxx.save、Post.first、Post.all、Post.find_by(xx{カラム}:xx{文字})等)が使える。
お作法
erbファイルには変数を定義するときは<% xx= oo %>というRubyの構文を埋め込むことができる。使いたい場合は<%= oo%>という感じで=を文頭につければ問題ない。
view
appliccation.html.erbが全てのページで表示されるhtml
<%= yield%>を埋め込むことによって他のviewを代入できる。
erbではURLをレンダリングさせるとき、aタグではなく
<link_to("Xx(文字)","/Xx(URL)")>を使う。(rootingがPOSTであれば第三引数に{method: "post"}を渡す必要がある。)
erbには<%= form_tag(URL) do %>というメソッドがあり、フォームに入力されたデータを送信することができる。
viewで<textarea name="xx"><textarea>で指定されたnameをcontorollerに飛ばすことができる。また、actionでPost.new(カラム: params[:xx])という形で宣言できる。
xx.errors.full_messages でエラー文章を表示できる。varidateを書いた後にflash[:notice]等で表示させるのが定石。
rooting,action
rootingでxx/:id => "xx/xx"という書き方ができる。
アクションでparams[:id]を実行でき、idを持ってくることができる。
find_byと組み合わせてPost.find_by(id: params[:id])といった感じで指定されたidの情報を持ってくることができる。
createアクションやdeleteアクションのようにデータベースに変更を加えるルーティングはget xx=> xxではなく、post xx=> xxとかく。
redirect_to(URL)とすることで指定したURLに飛ばすことができる。
xx.destroyでxxの行を削除できる。
render(URL)でビューファイルを呼び出すことができる。redirect_to(URL)との違いはrenderはルーティングやアクションを経由せず、viewファイルを直接たたけるので画面遷移しない。redirect_toは経由するので画面遷移を起こす。書き方の違いとしてはredirect_toは指定するURLの最初に/がいるのに対し、renderはいらない。
model
presence:true or false
カラムが存在するかどうかを確認する。
validates: カラム,{検証する内容}
不正なデータを弾くためのコード
例えば、varidates: xx,{presence:true}でからの投稿を防いだり、
varidates: xx,{length: {maximum: 140}}ネストして、140字以上を防いだりする。また、varidates: xx,{presence:true, length: {maximum: 140}}このようにカンマで区切って二つ組み込むことも可能。
posts/:idなんかの変数が組み込まれているルーティングは下の方に書かないと想定していないアクションを呼び出してしまうことがあるので注意が必要。
Post.all.order(created_at: )で投稿時間ごとに並び替えできる。さらに最後に:descをつけることで逆にできる。
この記事が気に入ったらサポートをしてみませんか?