2

協会:

location  has_many :comments
comment  belongs_to :location

何らかの理由で、この GET:

/locations/5/comments.json 

このGETのように動作しています:

/comments.json

Started GET "/locations/5/comments.json" for 127.0.0.1 at 2012-04-10 21:18:00 -0700
  Processing by CommentsController#index as JSON
  Parameters: {"location_id"=>"5"}
  Comment Load (0.1ms)  SELECT "comments".* FROM "comments" 
Completed 200 OK in 21ms (Views: 1.0ms | ActiveRecord: 0.7ms)

SQL クエリに注意してください: SELECT "comments".* FROM "comments"

ルートは次のように設定されています。

  resources :locations do
    resources :comments
  end

Rake routes はルートを確認します:

location_comments GET    /locations/:location_id/comments(.:format)          {:action=>"index", :controller=>"comments"}

インデックス アクションは次のとおりです。

 def index
    @comments = Comment.all
    respond_to do |format|
      format.json { render json: @comments }
    end
  end

これは正しい行動ですか?結果と一致していますが、他に何が必要かわかりません。これまでネストされたリソースで問題が発生したことがないため、詳細を調べたことはありません。

4

1 に答える 1

0

これを試して:

def index
  @location = Location.find(params[:location_id])
  @comments = @location.comments
  respond_to do |format|
    format.json { render json: @comments }
  end
end
于 2012-04-11T05:04:34.033 に答える