控制器不正确地传递nil

时间:2017-11-11 06:02:10

标签: css ruby-on-rails ruby http controllers

我对rails非常陌生,而且我一直在努力将数据从控制器发送到视图。我有一个控制器框架,其中我有一些where条件,以便将该数据传递给视图,但是当它不是

时它似乎是nil

我的控制器是这样的(我知道它很乱,很抱歉)

class FrameController < ApplicationController
   before_action :authenticate_user!

   def contract
     @offer_c = Offer.where(user_id: current_user.id)
     @contract_o = Contract.where(offer_id: @offer_c)
     @user_cliente = Contract.where(user_id: current_user.id)
     @user_ofertante = Contract.where(id: @contract_o)
     @offer_cliente = @user_clinete.offer_id
     @oferta_completa = Offer.where(id: @offer_cliente)
     @oferta_usuario = User.where(id: @offer_cliente.user_id)
   end
 end

我的观点是这样的

<% if @user_cliente %>
  <% @user_ofertante.each do |contract| %>
     <% @offer_c.each do |offer| %>
       <% if contract.offer_id == offer.id %>
         <div class="dropdown-divider">Mías</div>
           <a class="dropdown-item" href="#notificacion" data-toggle="modal">
             <strong>Oferta: </strong><%=offer.name%>
             <p>
               <strong>Usuario: </strong><%= User.where(id: Contract.user_id).first.firstName%>
             </p>
           </a>
         </div>
       <%end%>
     <%end%>
   <%end%>
 <%end%>

现在我知道它没有按预期工作,因为我有一个current_user.id = 2的用户和一个user_id =2的合同。

当我使用@user_cliente = Contract.where(user_id: current_user.id)<% if @user_cliente %>置于视图中并且它不执行后面的代码时,但是当我在控制台中放置相同的Contract.where(user_id: current_user.id)时,合同确实不会出现。如下图所示:

enter image description here

提前致谢

0 个答案:

没有答案