0

我分页的用户列表,并提供他们的头像旁边的“关注”按钮。我使用jQuery作为提交“Follow”表单的手段。Rails的jQuery表单提交,错误的表单获取执行

我遇到了一个错误,无论点击哪个“跟随”链接,都遵循分页列表中“最”最多的用户,而不是目标用户。

我怀疑这个bug可能与分页的表单有关,可能与CSS有关。

这里是后续形式:

<%= form_for(current_user.relationships.build(:followed_id => user.id), :remote => true) do |f| %> 
<div><%= f.hidden_field :followed_id %></div> 
<%= link_to "Follow", "#", :onclick=>"$('.new_relationship').submit()" %> 

这里是关系控制器 '创造' 的行动:

def create 
    @user = User.find(params[:relationship][:followed_id]) 
    current_user.follow!(@user) 
    respond_to do |format| 
     format.html { redirect_to :back } 
     format.js { } 
    end 
end 

任何帮助,将不胜感激,谢谢!

回答

1

您可以使用button_to helper。你不需要直接处理表单和js。呃,你可以免费得到不显眼的js。

<%= button_to "Follow", :remote => true, :action => "create", :id_to_follow => user.id %>

,如果你不希望使用按钮,link_to ..., :method => :post

+0

我其实特别不使用button_to的苦行/设计用途使用。你确定link_to:method =>:post是可行的吗?看看这个stackflow文章:http://stackoverflow.com/questions/4964599/rails-how-do-you-submit-a-form-with-a-text-link – 2011-05-08 02:30:56

+0

那么,在HTML链接的目的是做出一个get请求,因此:method =>:post似乎有点像黑客攻击它,另一方面你的onclick方法在这些方面更糟糕。 link_to的作品,只是尝试它。并确保您的控制器中的路由和动作设置正确,以接受传递的参数和方法。 – 2011-05-08 17:47:28

+0

非常感谢您的回复,但我认为可能存在对问题性质的误解。该代码适用于整个网站,除了在分页上下文中应用时。 onclick是正确的方法,因为我想使用jQuery/CSS和切换图像作为“按钮”。 – 2011-05-12 01:52:38