簡體   English   中英

Rails復雜的路由,更容易命名的路由助手

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM