构造链接到控制器中自定义方法的路径

时间:2017-01-15 02:17:28

标签: ruby-on-rails model-view-controller routes

我在OrdersController中有一个非标准方法 listByName ,如下所示。

class OrdersController < ApplicationController
     def index
         @orders=Order.all
     end 

     def listByName(name)
        @orders=Order.find_by(:name=>name)
        render index        
     end
end

我想创建一些可以路由到OrdersController#listByName方法的链接。

<%= link_to 'listByName', listByName_path %>

我的问题是如何在 html.erb 页面中构建路径,以及如何编写router.rb? 谢谢

1 个答案:

答案 0 :(得分:0)

the routing guide。您的问题在1.1和1.2中得到了解答。

  

1.1将URL连接到代码当Rails应用程序收到传入的请求时:

GET /patients/17
     

它要求路由器将其与控制器匹配   行动。如果第一个匹配的路线是:

get '/patients/:id', to: 'patients#show'
     

请求被分派到   患者控制器用{ id: '17' }表示行动。

     

1.2从代码生成路径和URL您还可以生成路径和URL。如果上述路线被修改为:

get '/patients/:id', to: 'patients#show', as: 'patient'
     

并且您的应用程序在控制器中包含此代码:

@patient = Patient.find(17)
     

并在相应的视图中:

<%= link_to 'Patient Record', patient_path(@patient) %> then the
     

路由器将生成路径/patients/17。这减少了   您的视图脆弱,使您的代码更容易理解。   请注意,不需要在路径助手中指定id。