LoginSignup
0
0

More than 1 year has passed since last update.

Rails 投稿編集・更新画面

Posted at

記事編集画面

config/routes.rb
get"posts/:id/edit"=>"posts#edit"

posts/1/editというURLが送信されたときに、postsコントローラーのeditアクションが実行される

posts/edit.html.erb
<%=link_to("編集”,"/posts/#{@post.id}/edit")%>

「編集」をクリックすると、URLが/posts/id/editのページに移動

posts_controller.rb
def edit
  @post=Post.find_by(id: params[:id])
end

postsコントローラーのeditアクションにおいて、idがURLで入力された値の投稿データを変数@postに代入した。

投稿更新画面

updateアクション=>フォームの内容への保存・投稿一覧画面への転送

posts/edit.html.erb
 <%= form_tag("/posts/#{@post.id}/update") do %>
<textarea name="content"><%= @post.content %></textarea>
<input type="submit" value="保存">
<% end %>

保存ボタンをクリックすると、フォームに入力された内容がURL"posts/#{@post.id}/updateに送信される。

posts_controller.rb
def update
    @post = Post.find_by(id: params[:id])・・1
    @post.content = params[:content]・・2
    @post.save・・3
redirect_to('/posts/index')
end

しかし、updateアクションに対応するビューがないので、URL"/posts/index"に転送する。
・・1idがURLで入力した値の投稿データを変数@postに代入した。
・・2カラム名がcontentで、そのcontentがname属性で指定したフォームに入力されたデータで変数@post.contentに代入した。
・・3作成したPostインスタンスをPostテーブルに保存。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0