2017-08-27 40 views
0

我有一個很大的疑問,我接受提示,如果他們看到更好的選擇做我想做的事。我有一個鏈接到兩個項目相同的看法>>如何通過驗證/處理參數在RUBY視圖

<ul class="nav nav-second-level"> 
    <li> 
    <%= link_to backoffice_pedidos_path do %> 
    Abertos 
    <% end %> 
    </li> 
    <li> 
    <%= link_to backoffice_pedidos_path do %> 
     Finalizados 
    <% end %> 
    </li> 
</ul> 

我希望在視圖來治療我的選擇的內容,如果點擊「Abertos」的佈局,它加載指數與部分_abertos和如果點擊「Finalizados」,它會加載索引,但會加載另一個部分_finalizados。有沒有辦法在link_to中傳遞一些參數,以便在視圖中我可以處理它以發送到正確的部分?或者如何留下任何提示?

索引>>

    <thead> 
        <tr> 
         <th>Pedido</th> 
         <th>Status</th> 
         <th>Data/Hora </th> 
         <th>Produtos </th>      
         <th> </th> 
        </tr> 
       </thead> 
       <tbody> 
        <% if ?? 
        <%= render partial: "backoffice/pedidos/abertos" %> 
        else ?? 
        <%= render partial: "backoffice/pedidos/finalizados" %> 
        <% end %> 
       </tbody> 

局部abertos >>

  <% @pedidos_aguardando.each do |pedido| %> 
     <tr> 
      <td><%=pedido.id%></td> 
      <td><%=pedido.status%></td> 
      <td><%=pedido.created_at%></td> 
      <!--<th><%=pedido.produtos.first.produto %></th>--> 
      <td><%=pedido.produtos.pluck (:produto)%></td> 
      <td width="50px"> 
       <%= link_to edit_backoffice_pedido_path(pedido), class:"btn btn-primary btn-circle" do %> 
       <i class="fa fa-edit"></i> 
       <% end %> 
      </td> 
     </tr> 
     <% end %> 

局部模板fechados

  <% @pedidos_finalizados.each do |pedido| %> 
     <tr> 
      <td><%=pedido.id%></td> 
      <td><%=pedido.status%></td> 
      <td><%=pedido.created_at%></td> 
      <!--<th><%=pedido.produtos.first.produto %></th>--> 
      <td><%=pedido.produtos.pluck (:produto)%></td> 
      <td width="50px"> 
       <%= link_to edit_backoffice_pedido_path(pedido), class:"btn btn-primary btn-circle" do %> 
       <i class="fa fa-edit"></i> 
       <% end %> 
      </td> 
     </tr> 
     <% end %> 

控制器

def index 
@pedidos_aguardando = Pedido.waiting 
@pedidos_finalizados = Pedido.ok 
end 

型號

class Pedido < ActiveRecord::Base 
has_many :produtos 

scope :waiting, -> { where(status: 1) } 
scope :ok, -> { where(status: 2) } 
end 

我接受建議,並感謝您!

回答

0

可以傳遞一個自定義的參數到link_to並使用PARAM在索引視圖加載泛音相應

<%= link_to backoffice_pedidos_path(flag: "abertos") do %> 
    Abertos 
<% end %> 
<%= link_to backoffice_pedidos_path(flag: "finalizados") do %> 
    Finalizados 
<% end %> 

而在索引視圖中,使用params[:flag]像這樣

加載泛音
<% if params[:flag] == "abertos" %> 
    <%= render partial: "backoffice/pedidos/abertos" %> 
<% elsif params[:flag] == "finalizados" %> 
    <%= render partial: "backoffice/pedidos/finalizados" %> 
<% end %> 
+0

我需要在控制器上做其他事嗎?因爲那只是不起作用=(它沒有渲染部分,條件不起作用=(Tks –

+0

不,不,不,不,忘記我說的,它的工作,非常感謝你!) –

+0

另一個問題,會這種用法是遵循RoR最佳實踐的最佳方法嗎?還是有另一種「正確」的方式來做到這一點? –