1

我正在使用 Rails Gemacts_as_follower 设置跟随系统,但遇到了一个不知道如何解决的问题。

例如,当我关注用户名为“testuser1”的用户时,我收到此错误:

Couldn't find Member with id=testuser1

app/controllers/follows_controller.rb:6:in `create'

Parameters:

{"_method"=>"post",
"authenticity_token"=>"FnqLCCQYcFGMerOB56/G6dlPvzpPhPDFbxCXaiDBOUU=",
"member_id"=>"testuser1"}

这是我的控制器:

class FollowsController < ApplicationController

before_filter :authenticate_member!

def create
    @member = Member.find(params[:member_id])
    current_member.follow(@member)
 end

def destroy
    @member = Member.find(params[:member_id])
    current_member.stop_following(@member)
end

end

创建如下表格:

<%= link_to("Follow", member_follows_path(member.to_param), :method => :post, :class => "btn") %>

<%= link_to("Following", member_follow_path(member.to_param, current_member.get_follow(member).id), :method => :delete, :class => "btn btn-follow") %>

这就是我定义我的 to_param 的方式,因为这是您访问成员/用户页面的方式:

def to_param
  user_name
end

那里的任何人都知道我该如何解决这个问题?谢谢。

4

1 回答 1

0

删除to_param. 当您使用 URL 帮助程序时,例如 your member_follows_path,您需要传递 ID,或者从 ERB 的角度来看,对象本身(它会在 ERB 呈现时解析为 ID)

或者,在您的 rails 控制器中,将 更改find为类似find_by_user_name,或者该字段应该是什么,然后该行应该可以工作。请注意,这会比较慢,特别是如果您有一个没有正确索引/分区的大型数据库。

于 2013-09-24T03:10:03.837 回答