2012-04-30 3 views
4

다른 뷰 (게임 및 프로모션)에서 사용할 부분을 빌드 중입니다. 내가보기에 부분을/응용 프로그램레일, 부분에 경로 변수 전달

<%= content_tag :article, class: ['article'] do %> 
    <a href="#"> 
    <%= image_tag item.thumbnail %> 
    </a> 
    <h2><%= item.name %></h2> 
    <p><%= item.description %></p> 
    <p> 
    <%= link_to 'Read more', "#" %> 
    </p> 
<% end %> 

을 만든 내가보기 게임에서 호출이 (또는 프로모션)보기 :

그것은 채우고 부분을 렌더링하기 위해 잘 작동
<% @games.each do |item| %> 
    <section> 
     <%= render 'application/item_synopsis_builder', item: item %> 
    </section> 
<% end %> 

하지만, 나는 동적으로 임시 #을 < % = the_right_path =>로 바꿀 수 있도록 view_path를 부분적으로 전달하는 방법을 배제 할 수 없다.

<%= render partial: 'application/item_synopsis_builder', locals: {item: item, path: game_path } %> 

을하지만 난 그냥 오류 메시지가 얻을 :

내가하려고 노력

No route matches {:action=>"show", :controller=>"games"} 

을하지만 HREF = "#"으로 부분을 렌더링하는 경우, 그것을 잘 렌더링합니다.

나는 또한 href="<%= "#{item}_path" %>"와 함께 나의 행운을 시험해 보았지만, 그것은 단지 객체 항목의 ref를 출력했다.

건배

답변

4

모르겠어요이 당신의 오류입니다,하지만 game_path이 오류가있을 수 있습니다 인수로 게임 객체를 기대하는 날 것으로 보인다.

편집 :

<% @games.each do |item| %> 
    <section> 
    <%= render partial: 'application/item_synopsis_builder', locals:{item: item, path: game_path(item) %> 
    </section> 
<% end %> 
+0

Game_path를 게임보기/컨트롤러/다른 곳에서 사용할 수 있습니까? –

+0

예, 그렇습니다. 그러나'game_path'는 특정 게임 (쇼, 업데이트, 파괴에 사용되는)의 경로이므로, id를 검색하기 위해서는 게임 객체가 필요합니다. 인덱스 페이지에 링크하려면'games_path' ('s'에 주목하십시오)를 사용하십시오. – ksol

+0

아니요 개별 게임의 경로를 렌더링하고 싶습니다. 게임 목록을 만들고 해당 페이지에 링크해야합니다. –

1

만약 당신이 모델의 이름을 따서 명명된다 찾고있는 URL을 간단히 수행 할 수 있습니다

<%= link_to "Read more", item %> 

이 자동으로 game_path 또는 당신을 위해 promotion_path이 따라 생성합니다 항목에.

이 모든 마법을 수행하는 방법은 polymorphic_url입니다.

현재 예제가 작동하지 않는 이유는 개체에 game_path을 지정하지 않았기 때문입니다. 이제 생성 할 ID를 알 수 없습니다. {:action=>"show", :controller=>"games"}과 일치하는 경로가 없지만 {:action=>"show", :controller=>"games", :id=>"something"}과 일치하는 경로가 있습니다.

+0

link_to 도우미로 잘 작동합니다. 그럼 나는 stoopid 질문을했습니다. link_to 도우미로 태그를 래핑하는 것이 가능합니까? –

+0

다음과 같은 것을 의미합니까? '<% = link_to content_tag (: div, "foo"), item %>'? 'link_to'와'form_for' 밖에 자동으로 URL을 생성해야한다면'url_for'를 사용할 수 있습니다. – iain

+0

Yop 나는 그런 것을 찾고있었습니다. 난 그냥 시도 <% = IMAGE_TAG item.thumbnail %> <% end -%> <% = LINK_TO (항목)은 % 할>과 괜찮 았는데.url_for 팁 주셔서 감사합니다 :) –