Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.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 RubyonRails4中的路由_Ruby On Rails_Ruby_Ruby On Rails 3_Web_Routes - Fatal编程技术网

Ruby on rails RubyonRails4中的路由

Ruby on rails RubyonRails4中的路由,ruby-on-rails,ruby,ruby-on-rails-3,web,routes,Ruby On Rails,Ruby,Ruby On Rails 3,Web,Routes,你好,我在RubyonRails4中遇到了路由问题 错误: undefined method `routes_path' 视图: 型号: def self.import(file, current_user) @user = current_user @route = @user.build_route @nil_flag = 0 File.open(file.path, 'r') do |f| . . . #etc end 路线 通过“获

你好,我在RubyonRails4中遇到了路由问题

错误:

undefined method `routes_path'
视图:

型号:

def self.import(file, current_user)
   @user = current_user
   @route = @user.build_route
   @nil_flag = 0

   File.open(file.path, 'r') do |f|
   .
   .
   .
    #etc
end
路线

通过“获取”将“/load_data”匹配到“routes#new”

视图、控制器和模型被命名为“路由”


视图中的路线有问题还是其他问题?谢谢你

这只是第一印象,没有详细研究它-你可能在使用routes作为类名时遇到问题,它已经是
ActionDispatch
下的类名了

然而,我认为你的问题实际上是你的路线:

match '/load_data', to: 'routes#new', via: 'get'
这不是资源路由,它不会生成允许您使用表单标记语法
{:multipart=>true}do%>

作为第一印象,如果不仔细研究,您可能会在使用routes作为类名时遇到问题,它已经是
ActionDispatch
下的类名

然而,我认为你的问题实际上是你的路线:

match '/load_data', to: 'routes#new', via: 'get'
这不是资源路由,它不会生成允许您使用表单标记语法
{:multipart=>true}do%>
马特(前一位答案作者)基本上回答了这个问题,只是想注意,您还可以将
as
选项附加到路线上,为路线命名:

通过“获取”将“/load_data”匹配到“routes#new”,作为“routes”

这将为您“定义”路由路径。

Matt(前一个答案作者)基本上回答了这个问题,只是想注意,您还可以将
as
选项附加到您的路由中,为其命名:

通过“获取”将“/load_data”匹配到“routes#new”,作为“routes”


这将为您“定义”路由路径。

这意味着我们不能在某些操作中使用路由,这将调用具有给定操作的核心类?在路由文件本身中可以看到许多路由控制示例。您可以为
Route
s集合定义特定的路由,也可以定义成员方法路由,关键是您的项目中有一个名为
Route
的ActiveRecord资源,如果您使用正确的路由以rails方式做事,您将有一个更轻松的时间。阅读有助于解释我所说的。@fahadIdrees看到我上面的评论,以及Vlad的回答。这意味着我们不能在某些操作中使用routes,这将调用具有给定操作的core类。routes文件本身中有很多对routes的控制示例。您可以为
Route
s集合定义特定的路由,也可以定义成员方法路由,关键是您的项目中有一个名为
Route
的ActiveRecord资源,如果您使用正确的路由以rails方式做事,您将有一个更轻松的时间。读一读有助于解释我所说的。@fahadIdrees看到了我上面的评论,也看到了Vlad的回答。这不是一个理想的解决方案,它是一个懒惰的解决方案。无意冒犯,但这只会使问题更加复杂,特别是因为该方法仍然是一个
get
!没错,我完全同意这不是一个理想的解决方案,这是一个懒惰的解决方案。无意冒犯,但这只会使问题更加复杂,特别是因为该方法仍然是一个
get
!没错,我完全同意这一点
match '/load_data', to: 'routes#new', via: 'get'
resources :routes
<%= form_for @route, :url => some_url, :html => { :multipart => true } do %>