2

我包括一个自定义方法来格式化我的 json 数据。

我的控制器如下所示:

("def" is taken out for brevity sake)

respond_to do |format|
  format.json { render json: @user, :methods => [:follower_count(params[:id])] }
end

我的模型如下所示:

 def follower_count user_id
    User.find(user_id).friendships.count
  end

但是,这会引发语法错误,即意外的 '('。

我不确定如何将参数传递给控制器​​中的 follower_count 方法。我试着用方形包裹——没有用。我试过没有括号 - 仍然不起作用。你如何传递论点?!

4

1 回答 1

3

语法错误告诉您您正在尝试将符号:follower_count用作函数。user_id但主要问题是,当您已经拥有实例方法时,为什么要传递给实例方法,就像@id在类的所有实例方法中一样User

正确的代码如下所示:

# controller
format.json { render json: @user, :methods => [:follower_count] }

# User.rb
def follower_count
    friendships.count
end
于 2012-04-06T20:48:56.730 回答