2011-01-05 14 views
5

に異なるオートルートはので、私はフォトセットという名前のモデルクラスとセットという名前のコントローラを持っています。パスはモデルのインスタンスをオフに生成されている場合を除き、すべてのためのワーキングセット: IVEはリソースを得ました。私が使用している場合、たとえば:レール3つの路線:モデル

<%= form_for(@photoset) do |f| %> 

を私はエラーを取得:

no route matches {:controller=>"sets"} 

は最終的に私はすべてのURIが... /セット/ ...(コントローラ名)になりたいの代わりに、... ./photosets/...(model名)

これを行うと、まだヘルパーを使用することができるようにする方法はありますか?

--EDIT-- HERESに私のすくいルート出力:

sets GET /sets(.:format)   {:controller=>"sets", :action=>"index"} 
     POST /sets(.:format)   {:controller=>"sets", :action=>"create"} 
new_set GET /sets/new(.:format)  {:controller=>"sets", :action=>"new"} 
edit_set GET /sets/:id/edit(.:format) {:controller=>"sets", :action=>"edit"} 
    set GET /sets/:id(.:format)  {:controller=>"sets", :action=>"show"} 
     PUT /sets/:id(.:format)  {:controller=>"sets", :action=>"update"} 
     DELETE /sets/:id(.:format)  {:controller=>"sets", :action=>"destroy"} 

すべてがちょうどダンディ作品、私はモデルのインスタンスオフフォームを構築しようとすると、問題があります。レールがPhotosetモデルをSetコントローラと直接結びつけようとしていることを知る方法がないことを理解していますが、その指定方法はわかりません。

あなたは photosets_pathphotoset_pathnew_photoset_path、などを使用することができ

resources :photosets, :as => "sets" 

を設定する必要があります

+0

あなたは 'すくいroutes'出力を表示することができますか? – Heikki

答えて

10

あなたはPhotosetモデルを持っています、コントローラーとURLをフォーム/sets/1/editにする必要があります。このような単純な形で

resources :sets, :as => "photosets" 

作品は:

<%= form_for(@photoset) do |f| %> 
    <%= f.text_field :title %> 
    <%= f.submit "Save" %> 
<% end %> 
+0

すべてこの機能は同じに保ち、ちょうどURLが異なるようにそれを変更する方法はありますか? '/ photosets/1/edit'の代わりに'/sets/1/edit'を作ることができますか?私は 'form_for(@photoset)'を使いたいと思っていますが、 '/ sets/... 'を指しています。 – greggreg

+0

答えを更新しました。 – Heikki

+1

うわー、完璧です。ありがとう! – greggreg

-1

...しかし、あなたはより多くの情報が必要な場合sets

としてURLがhereを参照してください示し

+0

これは、残念ながらURLはすべてまだ/フォトセットですset_pathするphotoset_pathからヘルパーを変更します。送信したルーティングガイドリンクのセクション4.3を確認してください。 – greggreg