Rails 4复选框不起作用,db中没有变化

时间:2014-01-23 23:11:48

标签: ruby-on-rails checkbox ruby-on-rails-4

我的复选框和布尔值存在很大问题。我想简单地使用复选框更改db中一个字段的值。代码是这样的:

Collection_controller:

def update
@collection = Collection.find(params[:id]).album
if @collection.update_attributes(:for_sale)
  flash[:success] = "success"
  redirect_to current_user
else
  flash[:success] = "not working"
end
end

def collection_params
  params.require(:collection).permit(:to_buy, :for_sale)
end

并形成:

<%= form_for collection do |f| %>
<div><%= f.check_box :for_sale%></div>
<%= f.submit "sale", class: "btn btn-primary" %>
<% end %>

有没有人知道它为什么不起作用?

修改

一个重要的事实是,点击“提交”后,我发送了“成功”消息。那么为什么我看不到变化呢?这是控制器或其他地方的问题?

2 个答案:

答案 0 :(得分:0)

首先,这应该是参数的哈希值。

http://apidock.com/rails/ActiveRecord/Base/update_attributes

答案 1 :(得分:0)

您需要传递要更新的内容。可能是这样的:

if @collection.update_attributes(collection_params)

但看起来你错误地将你的集合变量设置为集合的专辑,所以也要修复它

@collection = Collection.find(params[:id]).album

应该是

@collection = Collection.find(params[:id])