G'day all。
在Rails应用程序中,我有2个模型:用户和点,具有habtm关系和连接表。在spot / show动作中,我可以创建一个表单,询问当前用户是否访问过当前点(复选框),然后单击“保存”以在连接表中创建记录。
这很好用(所以我知道我的模特和人际关系都很好)然而不是那么优雅。有没有办法做到这一点,而无需使用复选框和提交按钮?最好只用一个按钮?
我的研究表明rails button_to可能会这样做,但我找不到一个有效的例子。
非常感谢。
答案 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
希望有所帮助。