ProgateのRuby on Railsまとめ③

【Ruby on Rails Ⅲ】

📖idカラムやcreated_atカラム、update_atカラムは、データベースに保存、更新されるときに値が自動で入る

🌟post=Post.find_by(カラム名:値)
→その条件のデータを取得
📖投稿詳細ページの作成
→ルーティングは
get "posts/:id"=>"posts#show"
※idの値によってページ内容が変わる
📖ルーティングは合致するURLを上から順に探すため、posts/indexより下に書く!
📖URLからID取得
→@id=params[:id]
※URLのidの値が、paramsという変数にハッシュとして入っている。
🌟@post=Post.find_by(id:params[:id])
→URLのIDの投稿を取り出す

📖投稿詳細ページへのリンク
→<%=link_to(post.content,
"/posts/#{post.id}")%>
※変数展開を用いて投稿のidを表示。第1引数は投稿内容をクリックすれば、詳細ページに飛ぶようになっている

*新規投稿ページ

📖newアクションでルーティング、コントローラ、ビューを用意する
📖入力フォームを用意
→入力フォームは<textarea></textarea>や<input>
→投稿ボタンは、
<input type="submit" value="投稿">にする
📖ボタンを押して送られたデータをcreateアクションで保存
🌟post "posts/create"=>"posts#create"
→データベースに変更加える時はpost

🌟<%=form_tag("/posts/create")do%>
フォーム
<%end%>
→フォームの送信先を指定。doを忘れない!
🌟redirect_to("/URL")
→ビューがないので、createアクション内でリダイレクトする。

🌟<textarea name="content"></textarea>
name属性を指定して、入力された値をキーとしたハッシュがRails側に送られる
📖入力されたデータをコントローラのアクション内で受け取る
→@post=Post.new(content:params[:content])

📖変数params
①:○○を使ったルーティングのURLから値を取得
②name="○○"がついたフォームの入力内容を受け取る

📖投稿を並び替える
→orderメソッドを使う
.order(カラム名: :desc)で降順。:ascだと昇順


この記事が気に入ったらサポートをしてみませんか?