rails 3路线:不同的模型自动路线

gre*_*reg 5 routes ruby-on-rails

所以我有一个名为Photoset的模型类和一个名为Sets的控制器.我有资源:除了从模型实例生成路径之外,设置为所有事情工作.例如,如果我使用:

<%= form_for(@photoset) do |f| %>
Run Code Online (Sandbox Code Playgroud)

我收到错误:

 no route matches {:controller=>"sets"}
Run Code Online (Sandbox Code Playgroud)

最终我希望所有的uris都是.../sets/...(控制器名称)而不是.../photosets/...(型号名称)

有没有办法做到这一点,仍然可以使用助手?

--EDIT--继承 我的佣金路线输出:

    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"}
Run Code Online (Sandbox Code Playgroud)

这一切都只是花花公子,问题是当我尝试从模型的实例构建一个表单.我知道rails无法知道我试图将Photoset模型直接与Set控制器绑定,但我不知道如何指定它.

Hei*_*kki 10

你有一个Photoset模型,集控制器和网址需要在形式/sets/1/edit.

resources :sets, :as => "photosets"
Run Code Online (Sandbox Code Playgroud)

使用这样的简单形式:

<%= form_for(@photoset) do |f| %>
    <%= f.text_field :title %>
    <%= f.submit "Save" %>
<% end %>
Run Code Online (Sandbox Code Playgroud)