У меня есть именованный маршрут вроде следующего:Рельсы комплекс маршрутизации, проще именованные маршруты хелперы
map.with_options :path_prefix => '/:username', :controller => 'questions' do |q|
q.question '/:id', :action => 'show', :conditions => { :method => :get }
end
Теперь для создания URL на конкретный вопрос, я должен написать
question_path(:id => @question.id, :username => @question.user.username)
Что довольно громоздкий. Я хотел был бы иметь возможность написать
question_path(@question)
# or even
link_to 'Question', @question
и получить желаемый результат.
Как это возможно? Я предполагаю, что для этого я должен перезаписать помощника по умолчанию.
Дело в том, мой URL выглядит следующим образом: имя пользователя /: question_id, и я думаю, что это Безразлично Для этого не работай. Было ли решение, которое вы предложили, даже упростило создание URL-адресов? – fphilipe
Зачем вам этот URL? Это запрос клиента? Если нет, я настоятельно рекомендую использовать соглашение для маршрутов в рельсах, которые были бы в вашем примере, например, как/users /: user_id/questions /: id – robertokl
Я хочу его в этом формате, потому что/users /: user_id/questions /: id слишком длинный, и я даже показываю заголовок заголовка после id так что-то вроде: '/ john/425-whats-going-on' – fphilipe