使用button_to创建habtm join?

时间:2010-07-06 06:39:13

标签: ruby-on-rails has-and-belongs-to-many

G'day all。

在Rails应用程序中,我有2个模型:用户和点,具有habtm关系和连接表。在spot / show动作中,我可以创建一个表单,询问当前用户是否访问过当前点(复选框),然后单击“保存”以在连接表中创建记录。

这很好用(所以我知道我的模特和人际关系都很好)然而不是那么优雅。有没有办法做到这一点,而无需使用复选框和提交按钮?最好只用一个按钮?

我的研究表明rails button_to可能会这样做,但我找不到一个有效的例子。

非常感谢。

1 个答案:

答案 0 :(得分:5)

是的,button_to可以正常工作:

<%= button_to "I've visited here", {:action => "visited", :id => @spot} %>

将生成一个按钮,按下该按钮将按预期传递参数中的@spot。然后,您可以(假设您使用的是current_user方法,因为您使用的是标准用户模型框架),请执行以下操作:

def visited
  spot = Spot.find(params[:id])
  current_user.spots << spot
  redirect_to :action => "show", :id => spot
end

希望有所帮助。