2011-08-22 30 views
2

我正在嘗試渲染評論部分以用於博客和視頻模型。這裏的博客顯示要求的部分和通過@blog作爲模型的評論頁面(我會把@video視頻的顯示頁面上):將link_to與實例變量和參數結合使用

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

接下來的這個代碼是命令的意見是最新的第一條/最早第一:

<% 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_path(@blog, :order => "DESC".... etc.) 

但我知道,你也可以只傳遞:

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