2014-02-06 3 views
1

배열에 10 개의 이름이 있고 목록 항목에 대한 html.erb에서 루프를 반복하고 있습니다. 링크도 필요합니다. 링크를 클릭하면 클릭 한 개별 이름을 검색 할 수 있습니다. 내가 가진 문제는 내가 원하는 경로로 나를 데려가지만 단수 이름 대신 전체 데이터베이스를 보여 준다는 것입니다. 여기 link_to를 사용하여 for 루프를 검색하십시오.

이이 페이지

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 
의 모델 인 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> 

내 코드입니다 여기

은 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

오타입니다. (:paramsparams이어야합니다).

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

그래서 :

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

또한 - 어떻게이 매개 변수의 이름이 무엇인지 경로를 말하고있다? 당신은 단지 을 전달하는 것입니다. params는 키 - 값 쌍이어야하며, 키를 제공하지 않았습니다. (난 당신이 다른 DJ-이름의 루프 ... 안에있어 확실 해요 ... 마지막으로

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

및 각 링크가 다른 DJ-이름에 가고 싶다 : 시도 .하지 현재 PARAMS에 저장되어있는 한,하지만 루프의 반복에 나열된 하나 그래서 그 대신를 사용

<li><%= link_to n, search_list_path(:dj_name => n) %></li> 
관련 문제