如何在RUBY视图中传递验证/处理参数

时间:2017-08-27 13:26:26

标签: ruby-on-rails ruby ruby-on-rails-3

我非常怀疑,如果他们看到更好的选择去做我想做的事情,我会接受提示。我有一个布局链接到两个相同视图>>

的项目
<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>

我想在视图中看待我选择的内容,如果它点击了#34; Abertos&#34;,它会加载带有部分_abertos的索引,如果它点击了&#34; Finalizados&#34;它加载索引,但加载另一个部分_finalizados。有没有办法在link_to中传递一些参数,以便在视图中我可以处理它以发送到正确的部分?或者有关如何留下的任何提示?

索引&gt;&GT;

                    <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&gt;&gt;

           <% @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 %>

Partial 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

我接受提示,谢谢!!

1 个答案:

答案 0 :(得分:0)

您可以将自定义参数传递给link_to,并在索引视图中使用该参数来相应地加载部分

<%= 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 %>