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ように、インスタンス メソッドを既に利用できるのに、なぜインスタンス メソッドに渡すのかということです。@idUser

正しいコードは次のようになります。

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

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