我是ruby on rails
的新手我有一个列表:
控制器代码:
def postList
@post_list = Post.paginate(page: params[:page], :per_page => 4).order('post_id DESC')
end
视图:
<% @post_list.each do |post| %>
<%= post.post_title %>
<div class="btn btn-success"> Add </div>
<div class="btn btn-danger"> Delete </div>
<% end %>
我需要点击Add
然后将1更新到数据库中,该数据库是column_name add
&amp;点击Delete
,然后从DB
删除此原始广告。
如何在此循环中使用表单?
我如何才能达到此解决方案?
如果有人帮忙的话会很棒。
答案 0 :(得分:0)
<% @post_list.each do |post| %>
<%= post.post_title %>
#This will post to the update action.
<%= form_for post do |f| %>
<%= f.hidden_field :add, value: 1 %>
<%= f.submit "Add", class: "btn btn-success" %>
<% end %>
#This will post to the destroy action
<%= link_to 'Delete', post_path(post), method: :delete, class: "btn btn-danger" %>
<% end %>
def update
post = Post.find(params[:id])
post.update(params.require(:post).permit(:add))
end
def destroy
post = Post.find(params[:id])
post.destroy
end
您可以使用AJAX进一步增强,以便将remote: true
添加到链接并形成并响应来自控制器的AJAX调用