Rails的按钮来更新属性不工作
我有一个链接,看起来像这样的对象的显示视图:Rails的按钮来更新属性不工作
<%= link_to "Approve", object_path(@object, status: true), method: :put, confirm: "Are you sure?", class: 'button' %>
控制器中的更新动作是标准和对象的定期编辑表单工作得很好。但由于某种原因,此链接不更新布尔字段为真...
有没有什么,我做错了这个链接?
编辑:控制器
def update
@object = Object.find_by_certain_field(params[:id])
if @object.update_attributes(params[:object])
flash[:success] = "Object Updated"
redirect_to @object
else
render 'edit'
end
end
object_path(@object, status: true)
的更新部分原因params[:status]
是真实的,而不是params[:object][:status]
如你所愿,因此不具有@object.update_attributes(params[:object])
更新对象如果要使用当前的代码,以保持图案只需加上
parmas[:object] ||= {}
params[:object][:status] = params[:status] if params[:status]
之前
if @object.update_attributes(params[:object])
和一切应该没问题。
否则,我avise大家做一个表格,此更新电话:
<% form_for @object, :method => :put do |f| %>
<%= f.hidden_field :status, :value => true %>
<%= f.submit "Approve" %>
<% end %>
我试过把它和它仍然没有工作:'' – Justin 2012-07-23 15:00:19
而在源代码中,它有''以及
你能否在这里粘贴收到这个请求的rails服务器的日志?另请加!在update_attributes方法中,如: 'if @ object.update_attributes!(params [:object])'。这样,如果由于验证而未保存对象,则会引发错误并将其记入日志。 – 2012-07-23 15:10:05
发布的控制器代码可能的帮助。但是如果没有它,我会冒险猜测你正在更新操作中将布尔值字段设置为true。 – 2012-07-23 04:33:47
我将控制器的代码添加到问题中。我只是使用'update_attributes'来设置发布的东西。有任何想法吗? – Justin 2012-07-23 12:54:41