如何保存关注者数据?

时间:2014-07-29 17:47:58

标签: ruby-on-rails ruby ruby-on-rails-4

我的表格user_followers包含:user_idfollower_id

我试图保存新记录,其中登录用户通过AJAX跟踪另一个用户。

这是按钮:

<%= link_to "Add friend", teste_user_follower_path(:params => @friend.id), remote: true, class: 'btn' %>

我尝试保存的动作teste

def teste

if params[:query]
  @friend = User.where(id: params[:query]).first
  @user_follower = current_user.user_followers.new(follower: @friend)
else
  flash[:error] = "Friend required"
end

end

我认为正确设置了关联

2 个答案:

答案 0 :(得分:1)

如果您要创建记录,我假设您已将teste路线设置为POST。如果是这种情况,您必须将method: :post添加到link_to

<%= link_to "Add friend", teste_user_follower_path(:params => @friend.id), method: :post, remote: true, class: 'btn' %>

看起来你实际上并没有在任何地方保存记录。您正在呼叫new,但从不致电save。如果您想同时执行这两项操作,可以使用create

def teste
  if params[:query]
    @friend = User.where(id: params[:query]).first
    @user_follower = current_user.user_followers.create(follower: @friend)
  else
    flash[:error] = "Friend required"
  end
end

答案 1 :(得分:1)

您实际上并未在代码中创建任何内容。 以下是有关关联的文档:http://guides.rubyonrails.org/association_basics.html#detailed-association-reference

您应该执行以下操作:

@user_follower = current_user.user_followers.create(follower: @friend)