所以我有一个名为Photoset的模型类和一个名为Sets的控制器。 我有资源:除了从模型实例生成路径之外,设置为所有事情工作。例如,如果我使用:
<%= form_for(@photoset) do |f| %>
我收到错误:
no route matches {:controller=>"sets"}
最终我希望所有的uris都是... / sets / ...(控制器名称)而不是... / photosets / ...(型号名称)
有没有办法做到这一点,仍然可以使用助手?
- 编辑 - 继承我的佣金路线输出:
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"}
所有这些都是花花公子,问题是当我尝试从模型实例构建表单时。我知道rails无法知道我试图将Photoset模型直接与Set控制器绑定,但我不知道如何指定它。
答案 0 :(得分:10)
您有一个Photoset模型,设置控制器和网址需要采用/sets/1/edit
格式。
resources :sets, :as => "photosets"
使用这样的简单形式:
<%= form_for(@photoset) do |f| %>
<%= f.text_field :title %>
<%= f.submit "Save" %>
<% end %>
答案 1 :(得分:-1)
你应该设置
resources :photosets, :as => "sets"
允许您使用photosets_path
,photoset_path
,new_photoset_path
等...但是将网址显示为sets
如果您需要更多信息,请参阅here