我正在为用户创建一个应用。我的UsersController
有show
方法。因此,id = 1
可以访问/users/1
的用户。
我的routes.rb
文件包含:users
个资源。因此,/users/1/edit
为edit
的用户呈现id = 1
页面。
我要完成的是创建一个新操作,允许用户通过/users/USER_ID/request
向任何用户发出请求。
我该怎么做?提前感谢帮助!
答案 0 :(得分:2)
首先,创建以下路线(routes.rb
):
get '/users/:id/request' => 'users#request', as: :user_request
其次,向request
添加UsersController
方法:
def request
@user = User.find params[:id]
# do your thing
end
您可以在视图中创建指向此网址的链接,如下所示:<%= link_to 'Request', user_request_path(@user.id) %>
答案 1 :(得分:0)
不确定你的意思是“控制器内的控制器”。通过将块传递到resources
路径,可以实现上述请求。
但是,将“request”用作操作名称非常危险,因为request
是操作控制器中常用的方法:
<强>的routes.rb 强>
resources :users do
put :process_request, on: :member
end
用户控制器:
def process_request
# ...
end