協会:何らかの理由でRails 3のネストされたルートがネストリソースを無視するのはなぜですか?
location has_many :comments
comment belongs_to :location
、この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クエリ:
/locations/5/comments.json
はこのGETのように振る舞っている。 "コメント" をSELECT * FROM 「コメント」
ルートは、このように設定されています
resources :locations do
resources :comments
end
レーキルートルートを確認:ここ
location_comments GET /locations/:location_id/comments(.:format) {:action=>"index", :controller=>"comments"}
はindexアクションです:
def index
@comments = Comment.all
respond_to do |format|
format.json { render json: @comments }
end
end
これは正しい行動ですか?それは結果と一致していますが、他に何があるべきかわかりません。これまでネストされたリソースには問題がなかったので、詳細を調べたことはありません。
を私は予想外の何かを見つけるように見えることはありません。これには何が問題なのですか? – prasvin
結果のクエリはSELECT「コメント」である必要があります。*「コメント」「コメント」。「location_idの」FROM = 5 –
いいえ、ネスティングは、クエリの全自動をすることはありません。そうであれば、場所に関係なく、どのようにすべてのコメントを取得しますか? '@comments = Comment.all.without_nesting'のようなものかもしれません。imoは従来の方法よりもクリーンではありません。 あなたの場合、@Patrickが提案した特定の場所のコメントを簡単に得ることができます。 – prasvin