2010-11-18 15 views
2

と一致し、私は次のようにすくいルートを呼び出し中に現れるルートがあります、私の見解ではNoルートは私のレールで3アプリをコントローラ

topic_snippets GET /topics/:topic_id/snippets(.:format) {:action=>"index", :controller=>"snippets"} 
routes.rbを

resources :topics do 
member do 
    get 'get_topics' 
end 
resources :snippets, :only => [:index] 
end 

をI

<%= send("topic_#{@name}_path")%> 

前の行を実行する場合、私は、次のルーティングエラーを取得、N:(ここで、@name =「スニペット」)を次のようにこのルートを参照していOT必ず理由:

No route matches {:controller=>"snippets"} 

アップデート:私は、応答上記が動作する必要があることを暗示するように見える別の質問を見つけました:Dynamically construct RESTful route using Rails

おかげ
アナンド

+0

しかし、 '@ topic'とは何か、もっと重要なのは、そのオブジェクトの' id'とは何ですか? –

+0

@topicパラメータは無関係です - 私がそれを削除しても、私は同じエラーが発生します。 – Anand

+0

質問から@topicパラメータを削除しました – Anand

答えて

3
を試してみました

OK、私はそれを見つけました - ライアンのコメントはヒントを提供しました。

私は@topicで渡すことはありませんでしたが、これは必須です。 @topicを削除すると、ルートを持たない/ snippets /で取得しようとします。私はこの行を呼び出す前に@topicを有効なトピックに設定しています。ありがとう、ライアン!

0

あなたは

<%= send(eval("topic_#{@name}_path"), @topic)%> 
+0

私はevalを使ってみました - これは、ルーティングエラーが発生したレールコードの場所を私に示している今回を除いて、私に同じエラーを与えます。 – Anand

関連する問題