2012-02-27 9 views
0

私は自分のレールダッシュボードに取り組んでいます。写真をレンダリングしてレールを使って新しい写真パスを表示する方法を見つけ出そうとしています。他のコントローラからアソシエーションを接続する方法は?

ユーザーが

、プロファイルは多くのアルバムを持っていたプロファイルを持っている写真、ビデオアルバムルートので

resources :albums do 
    resources :photos 
end 

ダッシュボードには、多くのプロファイルを持っており、プロファイルがダッシュボードに属するダッシュボードのように見えます。

シナリオ:

私はモデル、コントローラ、などと呼ばれるビデオを持っていると私は私のダッシュボードに上記のコードを配置すると、私は

<%= link_to 'Create a new Video', new_video_path %> 

を使用して新しい動画を作成することができる午前リンクのショーを見ます正しく動作します。他のすべての単一リソースに対しても機能します。

私は仕事にネストされたリソースのリンクを取得することはできません

<%= link_to 'New Photo', new_album_photos_path(@album) %> 

を追加してみてください。アルバムはうまくいきますが、アルバムの下に入れ子になっている写真はありません。私は、エラー

未定義のメソッド `new_album_photos_path」

修正またはこの問題を解決する方法上の任意のソリューションを取得しますか?

答えて

2

それは確かに、ではない100%(非複数写真)new_album_photo_pathおそらく

実行bundle exec rake routesそれが出力されますroutes.rbを

+0

私はそれを試してみました。なぜこれが動作しないのかわからない – coletrain

+0

'bundle exec rake routes'はあなたに端末を表示しますか?正しいメソッド名が表示されるはずです(おそらくalbum_new_photo_path? – house9

+0

「new_album_photo」と表示されますが、ダッシュボードのページにアクセスしたときに「No route matches {:action => "new"、コントローラ=> "photos"}」というメッセージが表示されます。 – coletrain

0

のconfig/routes.rbをから構築されたパターンやメソッド名のすべて:コードを交換する

試してみてください。

resources :albums do 
    resources :photos 
end 

どこでも、BEFORE: 'リソース:アルバム' または/および 'リソース:写真'。上位レベルのルートは、ネストされたルートを上書きします。私はそうだと思います...

関連する問題