2014-02-06 21 views
1

我有一個數組,其中有十個名稱,我在我的html.erb列表項中循環它們,我希望它們也是鏈接。所以當你點擊鏈接時,你可以搜索被點擊的個人名稱。我遇到的問題是它將我帶到了我想要的路徑,但顯示了我的整個數據庫而不是單個名稱。使用link_to搜索內循環

這裏是我的list.html.erb

<%=render 'layouts/search_bar' %> 

<h2>Top DJs Worldwide</h2> 
    <ol> 
    <% @djsList.each do |n|%> 
      <li><%= link_to n, search_list_path(:params[n]) %></li> 
    <% end %> 
    </ol> 

<p><%=link_to "List from DJ MAG", "http://djmag.com/top100", :target => "_blank "%></p> 

<section> 
    <%= render "layouts/comments"%> 
</section> 

碼這是此頁

class DjsController < ApplicationController 
    def list 
    @djsList = ["Hardwell", "Armin Van Buuren", "Avicii", "Tiesto", "David Guetta", "Dimitri Vegas & Like Mike", "Nicky Romero", "Steve Aoki", "Afrojack", "Dash Berlin"] 
    end 
end 

控制器這裏是數據庫

class DjList < ActiveRecord::Base 

    def self.search search_term 
    return scoped unless search_term.present? 
    where(['dj_name LIKE ?' , "%#{search_term}%"]) 
    end 

end 
模型

這裏是search_controller.rb

class SearchController < ApplicationController 
    def list 
    @search = DjList.search(params[:dj_name]).all 

    @listShows = [ "Dash Berlin at SoundGarden Hall, Friday, January 31, 2014" ] 

    end 
end 
+0

從你的控制器,它看起來好像你渲染'list'行動,對不對?你在哪裏調用'DjList.search'?你也可以發佈那個代碼嗎? – Aupajo

+0

根據這個代碼,它根本沒有被調用。 –

+0

啊,所以你正在尋找如何設置它來調用'DjList.search'? – Aupajo

回答

0

這是一個錯字嗎? (:params應該是params)。

<li><%= link_to n, search_list_path(:params[n]) %></li> 

所以:

<li><%= link_to n, search_list_path(params[n]) %></li> 

而且 - 你怎麼說的路徑是什麼這個參數的名稱是什麼?你只是通過一個原始的 - 參數必須是一個鍵值對,並且你沒有給它任何密鑰。嘗試:

<li><%= link_to n, search_list_path(:dj_name => params[n]) %></li> 

最後......我敢肯定你的不同 DJ-名稱的循環......裏面,你想每一個環節去一個不同 DJ-名( 。當前沒有存儲在PARAMS的一個,但在本次迭代循環中列出的之一,所以使用來代替:

<li><%= link_to n, search_list_path(:dj_name => n) %></li>