Мы конвертируем наше приложение Rails 2.3 в 3.0.11, и у нас возникла проблема с переносом некоторых маршрутов.
Мне кажется, что наши пользовательские параметры (: title и: name_recognition) вызываютнекоторые проблемы.Тем не менее, мы используем именованные маршруты, поэтому мне очень непонятно, почему Rails вообще пытается выполнить какое-либо сопоставление по контроллеру, действию и параметрам.
Ошибка, которую мы получаем:
ActionView::Template::Error (No route matches {:controller=>"audience_tool", :action=>"show", :name_recognition=>"BandName", :title=>"", :id=>1388}):
Это рассматриваемый маршрут от routs.rb:
match ':name_recognition/:title/:id' => 'audience_tool#show', :as => :show_page
Вот результат "rake route":
show_page /:name_recognition/:title/:id {controller=>"audience_tool", :action=>"show"}
Вот метод модели, который мы используем для построения URL:
def url(options=Hash.new)
options.reverse_merge!({
:name_recognition => name_recognition,
:title => title,
:id => id
})
show_page_path options
end
Вот как мы называем метод:
link_to("The Link text", show.url)
Stack Trace, за исключением кода шаблона, который отображается в ошибке:
actionpack (3.0.11) lib/action_dispatch/routing/route_set.rb:425:in `raise_routing_error'
actionpack (3.0.11) lib/action_dispatch/routing/route_set.rb:398:in `generate'
actionpack (3.0.11) lib/action_dispatch/routing/route_set.rb:454:in `generate'
actionpack (3.0.11) lib/action_dispatch/routing/route_set.rb:482:in `url_for'
actionpack (3.0.11) lib/action_dispatch/routing/url_for.rb:131:in `url_for'
actionpack (3.0.11) lib/action_dispatch/routing/route_set.rb:195:in `show_page_path'
app/models/performance.rb:245:in `url'
app/views/performances/_show_banner.haml:12:in `block in _app_views_performances__show_banner_haml___933466686__622884308__332894942'
haml (3.1.4) lib/haml/helpers/action_view_mods.rb:93:in `block in capture_with_haml'
haml (3.1.4) lib/haml/helpers.rb:345:in `call'
haml (3.1.4) lib/haml/helpers.rb:345:in `block in capture_haml'
haml (3.1.4) lib/haml/helpers.rb:569:in `with_haml_buffer'
haml (3.1.4) lib/haml/helpers.rb:341:in `capture_haml'
haml (3.1.4) lib/haml/helpers/xss_mods.rb:61:in `capture_haml_with_haml_xss'
haml (3.1.4) lib/haml/helpers/action_view_mods.rb:93:in `capture_with_haml'
app/helpers/pretty_helper.rb:4:in `rounded_wrap'
app/views/performances/_show_banner.haml:4:in `_app_views_performances__show_banner_haml___933466686__622884308__332894942'