Ruby on rails 我可以在rails 5.2上的rails控制器中使用几种新方法吗?
我的应用程序有几种创建通知的方法:Ruby on rails 我可以在rails 5.2上的rails控制器中使用几种新方法吗?,ruby-on-rails,Ruby On Rails,我的应用程序有几种创建通知的方法: 用户可以使用标准的“新建”方法创建通知 视图中的链接可以使用专用的“新建动作”从动作创建通知 等等 因此,我为新的\u操作\u通知\u路径创建了其他路由和视图: resources :notifications do member do get :new_action end collection do get :index_all end end 在控制器中 #
- 用户可以使用标准的“新建”方法创建通知
- 视图中的链接可以使用专用的“新建动作”从动作创建通知
- 等等
resources :notifications do
member do
get :new_action
end
collection do
get :index_all
end
end
在控制器中
# GET /notifications/new_action
def new_action
@playground = Playground.find(current_playground)
@notification = @playground.notifications.build( playground_id: params[:playground_id], …
并且认为:
<%= link_to t('Reject'), new_action_notification_path(
playground_id: current_playground,
description: t("#{this_object.class.name}#{'Rejected'}"),
您的url之所以不同,是因为您有一个用于新建\u操作的嵌套路由
resources :notifications do
member do
get :new_action
end
end
使用嵌套路由,您将在资源之间获得一个id号。729
是您正在传递给链接\u至
帮助程序的id。另一个路由帮助程序,new\u notification\u path
,正在创建一个新的通知,因此它不需要id。如果您在控制台中使用rails routes
或浏览器中的localhost:3000/rails/info/routes
查看路由,您将看到新建\u操作需要id
new_action_notification_path GET /notifications/:id/new_action
new_notification_path GET /notifications
路由的:id
部分是一个id号的占位符(尽管它实际上可以是您传入的任何内容),用于查找之前的资源。在这种情况下,id用于查找通知