我有类似下面的命名路线:Rails的复杂的路由,更容易命名路由助手
map.with_options :path_prefix => '/:username', :controller => 'questions' do |q|
q.question '/:id', :action => 'show', :conditions => { :method => :get }
end
我们产生一个特定的问题,我必须写
question_path(:id => @question.id, :username => @question.user.username)
的URL,这是非常繁琐。我希望能写
question_path(@question)
# or even
link_to 'Question', @question
并且得到想要的结果。
这怎么可能?我想我必须覆盖默认的帮手来实现这一点。
的事情是,我的网址是这样的:用户名/:question_id,我认为它不为此而工作。您建议的解决方案是否会促进URL生成? – fphilipe 2010-06-02 20:17:30
为什么你需要这个网址?这是客户要求吗? 如果不是的话,我强烈建议在rails中使用惯例,在你的例子中,/ users /:user_id/questions /:id – robertokl 2010-06-02 20:42:07
我需要这种格式,因为/ users /:user_id/questions /:id太长了,我甚至会在id后面显示标题段落,例如:'/ john/425-whats-going-on' – fphilipe 2010-06-03 07:09:57