[英]Rails complex routing, easier named routes helpers
我有一個如下命名的路由:
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
並獲得理想的結果。
這怎么可能? 我假設我必須覆蓋默認的幫助程序才能實現此目的。
好像您要為用戶/問題嵌套路由一樣。
map.resource :users do |user|
map.resources :question, :shallow => true
end
這樣,您可以使用/ users / 1 / questions訪問用戶問題,但是仍然可以訪問/ questions / 1特定問題。
您可以使用question_path(@question.user.username, @question)
或者您可以編寫輔助方法:
def user_question_path(question)
question_path(question.user.username, question)
end
並使用user_question_path(@question)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.