如何将参数从Controller传递给Ruby on Rails中的Model方法?

时间:2012-04-06 20:41:48

标签: ruby-on-rails methods models controllers

我包含一个用于格式化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方法。我试着在广场上包装 - 没用。我没有试过括号 - 仍然无效。你如何传递论据?!

1 个答案:

答案 0 :(得分:3)

语法错误告诉您正在尝试将符号:follower_count用作函数。但主要的问题是,在user_id类的所有实例方法中,当@id已经将User作为# controller format.json { render json: @user, :methods => [:follower_count] } # User.rb def follower_count friendships.count end 提供时,为什么要将它传递给实例方法。

正确的代码如下所示:

{{1}}