我只是想知道,我有一个模型,除了来自其他模型(FK)的id之外,它还具有单个属性boolean
。我想知道如何创建一个按钮来更改此boolean
以及仅更改
我有问题的模型是这个:
class Squad
belongs_to :player
belongs_to :team
end
我想在team#show
页面上创建一个按钮,以便拥有此team
的player
可以更改squad
的boolean
。我该怎么做,我的控制器看起来如何?
谢谢:)!
-编辑-
我正在使用这样的链接:
<%=link_to("Change status", squad_path(sqd, :status => true), :method => :put, :confirm => "Sure?")%>
sqd
在哪里是我查询的一部分。这个链接错了吗?
<%= link_to("Change status", squad_path(sqd, "squad[status]" => true), :method => :put, :confirm => "Sure?") %>
在您的控制器中(这很常见)
def update
@squad = Squad.find params[:id]
if @squad.update_attributes params[:squad]
...
end
end
是的,有。该方法称为"update_attribute"。它需要两个参数,字段名称和值。
squad.update_attribute(:boolean_field,true) # or false
基于更新的问题
def update
@squad = Squad.find(params[:id])
if @squad.update_attribute(:status,params[:status])
...
end
end
你的属性叫什么名字?
由于它属于 player
,您可以使用 player.squad.name_of_your_attributes = new_value
访问它。如果您希望将更改保存在数据库中,请不要忘记save
对象。
另外,您可以阅读
编辑:fl00r回答了你编辑的问题,我没有必要重复他写的内容。