我的表格user_followers
包含:user_id
和follower_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
我认为正确设置了关联
答案 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)