Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.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 Rails为附加方法操作添加路由_Ruby On Rails_Ruby_Ruby On Rails 3_Routes - Fatal编程技术网

Ruby on rails Rails为附加方法操作添加路由

Ruby on rails Rails为附加方法操作添加路由,ruby-on-rails,ruby,ruby-on-rails-3,routes,Ruby On Rails,Ruby,Ruby On Rails 3,Routes,我已经读了一些关于这个话题的其他问题和答案,但我仍然很困惑 我有一个具有标准功能的用户模型。我想添加一个类似于edit/update的页面,允许用户连接API 我在控制器中内置了以下功能: def deviceConnectEdit @user = User.find(params[:id]) end def deviceConnectUpdate @user = User.find(params[:id]) if @user.deviceConnectUpdate_attribu

我已经读了一些关于这个话题的其他问题和答案,但我仍然很困惑

我有一个具有标准功能的用户模型。我想添加一个类似于edit/update的页面,允许用户连接API

我在控制器中内置了以下功能:

def deviceConnectEdit
  @user = User.find(params[:id])
end

def deviceConnectUpdate
  @user = User.find(params[:id])
  if @user.deviceConnectUpdate_attributes(user_params)
    flash[:success] = "Device Connected"
    redirect_to @user
  else
    render 'deviceConnect'
  end
end
非常类似于标准的编辑/更新

我还构建了两个文件deviceConnectUpdate.html.erb和deviceConnectUpdate.html.erb(它们当前有一个语句来查看何时调用它们)

现在,当我运行
rake routes

      users GET     /users(.:format)                     users#index
      POST          /users(.:format)                     users#create
      new_user GET  /users/new(.:format)                 users#new
      edit_user GET /users/:id/edit(.:format)            users#edit
      user GET      /users/:id(.:format)                 users#show
      PUT           /users/:id(.:format)                 users#update
      DELETE        /users/:id(.:format)                 users#destroy
当我调用
foobar/users/1/deviceConnectEdit
时,我收到一个错误,即没有匹配的路由


如何修复此问题并添加路由。谢谢

您仍然需要在
config\routes.rb
文件中声明路由

此外,如果你想使用更为惯用的ruby(确实如此),你应该使用带下划线的方法名,而不是camelCase。例如,
设备连接编辑
而不是
设备连接编辑
。如果你不遵守约定,你会遇到麻烦(除非你有很好的理由背离约定).因此,我将用惯用Ruby发布路由,并希望您更新方法名称:-)


此外,您可能强烈希望您的设计具有单独的<代码>设备资源,而不是在用户控制器中对其进行跟踪……/P>谢谢所有的信息,您是完全正确的。我要做一个设备模型。我是ruby新手,所以任何建议都值得赞赏。我建议您在开始学习时阅读Rails指南。然后在完成时检查您的实现,以确保您了解发生了什么。从这里开始:记下资源、单个资源和嵌套资源。

resources :users do
  member do
    get 'device_connect_edit'
    post 'device_connect_update'
  end
end