布局中的路线问题

时间:2016-08-02 10:47:26

标签: ruby-on-rails ruby ruby-on-rails-4

好的,我收到此错误 - 没有路由匹配{:action =>" search",:controller =>"图纸",:search =>" 2016"}缺少必需的密钥: [:workcategory_id]

我的布局/ _header

中有这个
      <% unless @workcategories.nil? %>
        <% @workcategories.each do |workcategory| %>
          <li><%= link_to workcategory.name, search_workcategory_drawings_path(search: workcategory.name) %></li>
        <% end %>

我的绘图模型

belongs_to :workcategory
def self.search(params)
    drawings = Drawing.where("name like ?", "%#{params[:search]}%")
    drawings
end

这是控制器应该发生事情的部分

def search
    @drawings = Drawing.search(params)
end

最后我的路线

  resources :workcategories do
    resources :drawings do
      collection do
        get :search
      end
    end
  end

所以问题是,当我进入任何页面时 - 主页,管理面板等...我收到错误&#39;没有路由匹配{:action =&gt;&#34; search&#34;,: controller =&gt;&#34;图纸&#34;,:搜索=&gt;&#34; 2016&#34;}缺少必需的密钥:[:workcategory_id]&#39;。我不明白为什么要尝试建立&#39;搜索路径已经存在,虽然我没有尝试访问它。我希望我有意义......

1 个答案:

答案 0 :(得分:1)

只需提供workcategory_id

      <li><%= link_to workcategory.name, search_workcategory_drawings_path(workcategory.id, search: workcategory.name) %></li>