在我的UserController中,我有:
def join
end
我的/ views / user /文件夹中有一个join.html.erb。
我的路线有:
resources :user
当我去:
http://localhost:3000/user/join
我明白了:
无法找到UserController
的操作'show'答案 0 :(得分:5)
Re:为什么找不到加入操作?
要回答您的具体问题,您要为自己的用户模型添加“加入”操作。
您的问题是您没有定义与网址http://localhost:3000/user/join
匹配的路线路由文件中的行resources :user
仅定义七个标准其余动词/动作的路由:
索引,新建,创建,显示,编辑,更新,销毁
请参阅:http://apidock.com/rails/ActionController/Resources/resources
补充:要修复,您需要添加显式路径或通用路由。 Routing docs
添加: Re:为什么我看到重新显示错误消息?为了超精确,路由选择器“GET / usr /:id”(由您的资源调用创建)正在用于为User资源选择SHOW操作。 :id值设置为“join”。由于您没有在控制器中定义Show方法,这就是您所看到的错误。
答案 1 :(得分:2)
您正在使用资源,但具有非REST操作,因此您需要使用适当的HTTP谓词将连接操作添加到路由中:
map.resources :users, :member => { :join => :get }
答案 2 :(得分:0)
地点:
def show
end
在你的UserController中。
确定:
应用/控制器/ users_controller.rb 强>
def join
end
应用/视图/用户/ join.html.erb 强>
<强>配置/ routes.rb中强>
resources :users