如何将参数传递给Ruby on Rails中的另一个View

时间:2018-05-31 11:52:43

标签: ruby-on-rails

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

A Year已经并且属于许多亮点。而一个亮点,已经并且属于多年。就这样:

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

1 个答案:

答案 0 :(得分:0)

在定义按钮的路径时,您应该将年份作为参数传递。 多数民众赞同如下: routes_path(key: value)例如:admin_highlights_path(year: year)