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 在控制器中 #

我的应用程序有几种创建通知的方法:

  • 用户可以使用标准的“新建”方法创建通知
  • 视图中的链接可以使用专用的“新建动作”从动作创建通知
  • 等等
因此,我为新的\u操作\u通知\u路径创建了其他路由和视图:

  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用于查找通知