Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/54.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 构造链接到控制器中自定义方法的路径_Ruby On Rails_Model View Controller_Routes - Fatal编程技术网

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

Ruby on rails 构造链接到控制器中自定义方法的路径,ruby-on-rails,model-view-controller,routes,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

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

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

     def listByName(name)
        @orders=Order.find_by(:name=>name)
        render index        
     end
end
class OrdersControllername)查找
渲染索引
结束
结束
我想创建一些可以路由到OrdersController#listByName方法的链接

<%= link_to 'listByName', listByName_path %>

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

请参阅。您的问题在1.1和1.2中得到了回答

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

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
。这降低了成本 视图的脆弱性使代码更容易理解。 请注意,不需要在route helper中指定id


你反对这里的习俗有什么原因吗?使用带有排序参数的
index
方法,不要使用驼峰大小写命名Ruby方法和变量(使用snake大小写)。问题是我不知道路径应该是什么,例如
中的方法
患者路径
。请参阅:上面的1.2和链接文档中的3.6。