上書き
post=Post.find_by(id:1)
post.content="hoge"
post.save
削除
post=Post.find_by(id:1)
post.destroy
上書き(実際にビューとコントローラにて)
<div class="main posts-new">
<div class="container">
<h1 class="form-heading">編集する</h1>
<%= form_tag("/posts/#{@post.id}/update") do %>
<div class="form">
<div class="form-body">
<textarea name="content"><%= @post.content %></textarea>
<input type="submit" value="保存">
</div>
</div>
<% end %>
</div>
</div>
def update
@post = Post.find_by(id: params[:id])
@post.content = params[:content]
@post.save
redirect_to("/posts/index")
end
削除(実際にビューとコントローラにて)
- link_to("削除", "/posts/#{@post.id}/destroy")のように書くと「get "posts/:id/destroy"」のように書かれたルーティングを探してしまう
- link_toの第三引数に「{method: "post"}」を追加することで、「post」として定義されているルーティングにマッチするようになる
<%= link_to("削除", "/posts/#{@post.id}/destroy", {method: "post"}) %>
def destroy
@post = Post.find_by(id: params[:id])
@post.destroy
redirect_to("/posts/index")
end