2011-08-22 1 views
2

블로그 및 비디오 모델 모두에서 사용할 부분을 렌더링하려고합니다. 여기 부분과 모델로 @blog 통과 코멘트를 요청하는 블로그 쇼 페이지입니다 (I 비디오의 쇼 페이지에 @video 전달합니다) :인스턴스 변수 및 인수로 link_to 사용

<%= render :partial => 'comments/comments', :locals => {:model => @blog} %> 

이 다음 코드는 최신 첫번째/오래된로 의견을 주문하는 것입니다 첫째 :

link_to('Newest First', blog_path(@blog, :order => "DESC".... etc.) 

하지만 당신은 또한 단지 통과 할 수 있다는 사실을 알고 :이 잘 작동

<% if @comments.count > 1 %> 
    <span class="list_order"> 
    <%= link_to('Newest First', model, :order => "DESC", :anchor => "comments") + " | " + 
     link_to('Oldest First', model, :order => "ASC", :anchor => "comments") %> 
    </span> 
<% end -%> 

내가 말할 때

link_to('Newest First', @blog) 

그리고 자동으로 블로그 쇼 페이지로 이동합니다. 그래서 내 코드에서 "모델"로컬을 전달하고 페이지를 새로 고치지 만 order 또는 : anchor에 대한 내 인수는 사용하지 않습니다. link_to 메소드의 경로가 아닌 인스턴스 변수 만 사용할 때 어떻게 인수를 전달합니까?

답변

1

좋아, 마침내 내 친구에게 물어볼 기회를 얻었고 해결책을 찾았습니다. 다형성 경로를 사용해야했습니다. 위의 예제에서 다음 코드가 작동합니다.

<%= link_to('Newest First', polymorphic_path(model, :order => "DESC", :anchor => "comments") + " | " + link_to('Oldest First', polymorphic_path(model, :order => "ASC", :anchor => "comments") %> 

그런 다음 사용 된 변수에 대한 올바른 경로를 생성하는 것으로 알고 있습니다. 여기에 대한 정보가 있습니다. http://apidock.com/rails/ActionDispatch/Routing/PolymorphicRoutes/polymorphic_path