轨道 - 有没有办法更新单个属性



我只是想知道,我有一个模型,除了来自其他模型(FK)的id之外,它还具有单个属性boolean。我想知道如何创建一个按钮来更改此boolean以及仅更改

我有问题的模型是这个:

class Squad
 belongs_to :player
 belongs_to :team
end

我想在team#show页面上创建一个按钮,以便拥有此teamplayer可以更改squadboolean。我该怎么做,我的控制器看起来如何?

谢谢:)!

-编辑-

我正在使用这样的链接:

<%=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回答了你编辑的问题,我没有必要重复他写的内容。

相关内容

  • 没有找到相关文章

最新更新