一切! 也许有人知道为什么:
def index_link(object, content = t("#{object.to_s.pluralize}.index"))
#link_to(content, {:controller=>object.to_s.pluralize}, :scope=>"") if can?(:read, p(object)) #this doesn't work too
link_to(content, :controller=>"trademarks")
#link_to(content, trademarks_path) #this do work, but I need to set path from object
end
像这样做一个例外:
No route matches {:controller=>"devise/trademarks"}
堆栈:
actionpack (3.0.3) lib/action_dispatch/routing/route_set.rb:424:in `raise_routing_error'
actionpack (3.0.3) lib/action_dispatch/routing/route_set.rb:406:in `generate'
actionpack (3.0.3) lib/action_dispatch/routing/route_set.rb:453:in `generate'
actionpack (3.0.3) lib/action_dispatch/routing/route_set.rb:481:in `url_for'
actionpack (3.0.3) lib/action_dispatch/routing/url_for.rb:131:in `url_for'
actionpack (3.0.3) lib/action_view/helpers/url_helper.rb:99:in `url_for'
actionpack (3.0.3) lib/action_view/helpers/url_helper.rb:236:in `link_to'
app/helpers/application_helper.rb:53:in `index_link'
app/views/layouts/application.html.erb:20:in `_app_views_layouts_application_html_erb___741328535__615736668_0'
actionpack (3.0.3) lib/action_view/template.rb:135:in `send'
actionpack (3.0.3) lib/action_view/template.rb:135:in `render'
以及如何使其发挥作用?
答案 0 :(得分:9)
您必须在路径中添加斜杠。 例如:
<li><%= link_to "Events" , :controller => "/events", :action => "index" %></li>
来源: https://github.com/plataformatec/devise/issues/471#issue/471/comment/395243
答案 1 :(得分:1)
这是rake路线的一部分:
new_user_session GET /users/login(.:format) {:controller=>"devise/sessions", :action=>"new"}
user_session POST /users/login(.:format) {:controller=>"devise/sessions", :action=>"create"}
destroy_user_session GET /users/logout(.:format) {:controller=>"devise/sessions", :action=>"destroy"}
user_password POST /users/password(.:format) {:controller=>"devise/passwords", :action=>"create"}
new_user_password GET /users/password/new(.:format) {:controller=>"devise/passwords", :action=>"new"}
edit_user_password GET /users/password/edit(.:format) {:controller=>"devise/passwords", :action=>"edit"}
PUT /users/password(.:format) {:controller=>"devise/passwords", :action=>"update"}
user_registration POST /users(.:format) {:controller=>"devise/registrations", :action=>"create"}
new_user_registration GET /users/register(.:format) {:controller=>"devise/registrations", :action=>"new"}
edit_user_registration GET /users/edit(.:format) {:controller=>"devise/registrations", :action=>"edit"}
PUT /users(.:format) {:controller=>"devise/registrations", :action=>"update"}
DELETE /users(.:format) {:controller=>"devise/registrations", :action=>"destroy"}
GET /content/:id-:alias(.:format) {:controller=>"contents", :action=>"show", :id=>/\d+/}
contents GET /content(.:format) {:controller=>"contents", :action=>"index"}
POST /content(.:format) {:controller=>"contents", :action=>"create"}
new_content GET /content/new(.:format) {:controller=>"contents", :action=>"new"}
edit_content GET /content/:id/edit(.:format) {:controller=>"contents", :action=>"edit"}
content GET /content/:id(.:format) {:controller=>"contents", :action=>"show"}
PUT /content/:id(.:format) {:controller=>"contents", :action=>"update"}
DELETE /content/:id(.:format) {:controller=>"contents", :action=>"destroy"}
trademarks GET /trademarks(.:format) {:controller=>"trademarks", :action=>"index"}
POST /trademarks(.:format) {:controller=>"trademarks", :action=>"create"}
new_trademark GET /trademarks/new(.:format) {:controller=>"trademarks", :action=>"new"}
edit_trademark GET /trademarks/:id/edit(.:format) {:controller=>"trademarks", :action=>"edit"}
trademark GET /trademarks/:id(.:format) {:controller=>"trademarks", :action=>"show"}
PUT /trademarks/:id(.:format) {:controller=>"trademarks", :action=>"update"}
DELETE /trademarks/:id(.:format) {:controller=>"trademarks", :action=>"destroy"}
请求的页面是/ users / edit。该错误仅在设计控制器中发生。