首页 > 解决方案 > 如何在 Ruby on Rails 中将参数传递给另一个视图

问题描述

我有一个名为 Year 的模型和一个名为 Highlight 的模型

一年有并且属于许多亮点。一个亮点,已经并且属于多年。像这样:

class Year < ActiveRecord::Base

  has_and_belongs_to_many :highlights

end

class Highlight < ActiveRecord::Base
    has_and_belongs_to_many :years
end

我对 Year 实体有一个视图,并希望有一个链接到该特定年份的所有亮点的按钮,例如:

 <td>
 <%= button_to 'Highlights', admin_highlights_path(year), class: 'btn btn-sm btn-default' %>
</td>

我知道在我的控制器上该做什么,但我在这个视图上做错了什么。因为,当我单击按钮时,它会显示消息:

ActionController::ParameterMissing in Admin::HighlightsController#create

因为,这当然是试图采取错误的行动。

所以,我的问题是,如何生成一个按钮,将年份作为 admin_highlight 索引的参数发送,并且在我的控制器中,我可以显示该特定年份的所有亮点类别?

我的路线:

namespace :admin do
    root 'pages#show', id: 'dashboard'

    resources :events
    resources :invitees do
      collection do
        get 'import_invitees/:year' => 'invitees#import_invitees', as: :import_invitees
      end
    end
    resources :highlights

    resources :pages
    resources :speakers
    resources :sponsors
    resources :users
    resources :years do
      resources :events do
        resources :photos
      end
    end
  end

标签: ruby-on-rails

解决方案


在定义按钮的路径时,您应该将年份作为参数传递。看起来如下所示: routes_path(key: value)例如:admin_highlights_path(year: year)


推荐阅读