Я использую рельсы 3.0.5, rspec2 с последней капибарой.
Маршруты настроены так:
scope "(:locale)", :locale => /de|fr|it|en/ do
resources :dossiers
end
В application_controller у меня есть это:
def default_url_options(options={})
options[:locale] = "es"
options
end
Итак, в моих взглядах я могу использовать
link_to 'test', dossier_path(1)
без проблем.
Но когда я делаю то же самое при посещении капибары, он пытается использовать 1 для локали, а не для идентификатора. Это работает только тогда, когда я использую
visit dossier_path(nil, 1)
or
visit dossier_path(:id => 1)
Но оба уродливы и выглядят как грязный хак. Итак, зачем мне использовать этот грязный хак и что мне делать, чтобы я мог использовать методы пути точно так же, как в представлениях (то есть без грязного хака, связанного с необходимостью добавлять nil или явно передавать :id => . ..)? :)