Ruby on rails Rails 4复选框不工作,数据库中没有更改
我对复选框和布尔值有一个很大的问题。我只想使用复选框更改db中一个字段的值。代码如下: 收集控制器:Ruby on rails Rails 4复选框不工作,数据库中没有更改,ruby-on-rails,checkbox,ruby-on-rails-4,Ruby On Rails,Checkbox,Ruby On Rails 4,我对复选框和布尔值有一个很大的问题。我只想使用复选框更改db中一个字段的值。代码如下: 收集控制器: 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"
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 %>
有人知道它为什么不起作用吗
编辑
一个重要的事实是,点击“提交”后,我会收到一条“成功”的快闪消息。那么为什么我看不到这些变化呢?这是控制器或其他地方的问题?首先,这应该是参数散列
您需要传入您想要更新的内容。可能是这样:
if @collection.update_attributes(collection_params)
但是,看起来您没有正确地将集合变量设置为集合的相册,所以也要解决这个问题
@collection = Collection.find(params[:id]).album
应该是
@collection = Collection.find(params[:id])
试试@collection的form_。form是为@collection呈现的,所以这里应该是collection。无论如何,我检查了你的解决方案,但不起作用。请参见http://apidock.com/rails/ActionView/Helpers/FormHelper/form_for. 一个符号可以工作,一个实例@variable可以工作,但我认为一个简单的变量不起作用。