rails路由控制器动作变化

时间:2008-12-02 09:29:57

标签: ruby-on-rails ruby routing

我在这里遇到问题: 我有一个控制器问题,其中包含 new 操作。 每当我需要创建新问题时,我都在输入

/questions/new

我应该对routes.rb进行哪些更改才能将URI更改为

/questions/ask

谢谢。 阀。

3 个答案:

答案 0 :(得分:7)

试试这个:

map.ask_question   '/questions/ask', :controller => 'questions', :action => 'new'

然后你将有一条命名路线,你可以:

link_to "Ask a question", ask_question_path

答案 1 :(得分:5)

如果您使用的是RESTful路线,或许您希望将map.resources用于问题

要重命名操作网址,您可以执行以下操作:

map.resources :questions, :path_names => { :new => 'ask', :delete => 'withdraw' }

(为了示例,我添加了删除)

答案 2 :(得分:0)

哪个版本的rails?

通常默认路由应该捕获/ / controller /:action之类的内容,因此您可以在问题控制器中创建一个ask方法。如果你想要更平滑的东西,请查看named_route和map_resource的api文档。