Ruby on rails Rails为附加方法操作添加路由
我已经读了一些关于这个话题的其他问题和答案,但我仍然很困惑 我有一个具有标准功能的用户模型。我想添加一个类似于edit/update的页面,允许用户连接API 我在控制器中内置了以下功能: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
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