铁轨显示。代替/在url中

时间:2017-02-23 02:41:02

标签: ruby-on-rails routing

我有static_controller index行动需要身份证件

我的路线

  get 'faqs' => 'static#main'
  get 'faqs/:id' => 'static#index'

但如果我使用此路径faqs_path(faq_id)我会

http://localhost:5000/faq.1代替http://localhost:5000/faq/1

有人能告诉我如何解决这个问题。谢谢..

3 个答案:

答案 0 :(得分:2)

您可能需要正确命名:

get 'faqs' => 'static#main', as: 'faqs'
get 'faqs/:id' => 'static#index', as: 'faq'

通常你会在resources尝试遵守REST约定的情况下执行此操作,但在您的情况下,如果您真的需要这些,则必须指导路由器。

使用rake routes检查名称是否正确。您可能一直使用faqs_path作为可选的id说明符调用:format

答案 1 :(得分:0)

我认为您的问题在这里是相同的路线名称,您可以将您的名称更改为:

get 'faqs/:id' => 'static#index'
get 'faqs' => 'static#main'

get 'faq/:id' => 'static#index'
get 'faqs' => 'static#main'

您的path是:faq_path(faq_id)

告诉我它是否无效。

答案 2 :(得分:0)

你可以试试吗? faqs_path(:id => faq_id)