2012-12-17 2 views
0

특정 카테고리를 클릭하면 해당 카테고리에 속한 모든 사진 (jags)이 화면에 표시되는 "카테고리"의 정렬되지 않은 목록을 얻으려고합니다. . 범주를 포함 내보기는 다음과 같습니다레일, link_to, 값을 전달할 수 없음

def show 
@jags = Jag.where("category_id = params[:id]") 
    if @jags.empty? 
    flash[:notice] = "No jags in this Category" 
    end 
end 

그리고 마지막으로 내 쇼보기는 다음과 같습니다 :

<div id = "Categories"> 
<h2>Categories</h2> 
<ul><% @cat.each do |c| %> 
    <li><%=link_to c.name, c,:controller => "category", :action => "show" %> 
    </li> 
<% end %> 
</ul> 

내 카테고리 컨트롤러 인

<%= render 'nav' %> 
<div><% @jags.each do |j| %> 
<%= image_tag j.image_url(:thumb)%> 
<% end %> 
</div> 

난 데 문제 것은 내가 해달라고입니다 카테고리 컨트롤러에 대한 첫 번째보기에서 내 "특정 카테고리"(c)를 전달하는 방법을 알고 있어야합니다.

저는 인스턴스 변수 (@c)를 만들려고했는데 분명히 할 수 없습니다. [형식적 인수는 인스턴스 변수가 될 수 없습니다 '); @ cat.each do | @c | ; @ output_buffer.safe_concat (').

이 코드를 실행하면 SQLite 오류가 발생합니다. [SQLite3 :: SQLException : near "[: id]": 구문 오류 : SELECT COUNT (*) FROM "jags"WHERE (CATEGORY_ID = PARAMS [: ID]). 당신이 편안하고 컨트롤러를 사용하는 경우]

답변

1

이 충분해야한다 : 당신이 컨트롤러의 종류에 대한 ID를 얻고로

<div id = "Categories"> 
<h2>Categories</h2> 
<ul> 
<% @cat.each do |c| %> 
    <li><%=link_to c.name, c %></li> 
<% end %> 
</ul> 
+0

나는 이해하지 못한다. link.to는 c.name을 어디에 연결해야 하는지를 어떻게 알 수 있습니까? – nupac

+0

우리는'Category' 객체 인'c'를 넘겨줍니다. –

+0

이해할 수없는 몇 가지 예 1. show 액션을 수행해야한다는 것을 어떻게 알 수 있습니까? 2. 어떻게 'c'를 전달할 수 있습니까? 인스턴스 변수 – nupac

1

이보고, 당신이 할 수있는 그냥해라.

@category = Category.find params[:id] 

귀하의 컨트롤러. 또한 아래의대로 link_to 도우미를 정리하십시오.

관련 문제