如何通过验证/处理参数在RUBY视图

问题描述:

我有一个很大的疑问,我接受提示,如果他们看到更好的选择做我想做的事。我有一个链接到两个项目相同的看法>>如何通过验证/处理参数在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 

我接受建议,并感谢您!

可以传递一个自定义的参数到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最佳实践的最佳方法吗?还是有另一种“正确”的方式来做到这一点? –