Ruby on rails 无法从view rails 3.2访问关联的模型方法

Ruby on rails 无法从view rails 3.2访问关联的模型方法,ruby-on-rails,rails-activerecord,Ruby On Rails,Rails Activerecord,形势 我有两种型号的电缆和状态 电缆属于状态,状态有许多电缆 在返回单个记录的任何地方,以下代码都有效 @cable.status.stat #where stat is one of the columns in status 但是,由于我的索引返回所有电缆,当我尝试通过执行以下操作从视图访问它们时 <% @cables.each do |cable| %> <td><%= cable.Cable_Hex %></td> &

形势

  • 我有两种型号的电缆和状态
  • 电缆属于状态,状态有许多电缆
  • 在返回单个记录的任何地方,以下代码都有效

    @cable.status.stat #where stat is one of the columns in status
    
  • 但是,由于我的索引返回所有电缆,当我尝试通过执行以下操作从视图访问它们时

    <% @cables.each do |cable| %>
        <td><%= cable.Cable_Hex %></td>
        <td><%= cable.status.stat %></td>
      </tr>
    <% end %>
    
    
    
我得到一个错误,说明。stat无法识别。 当我删除.stat并将其保留为cable.status时,我只看到一个地址

如果我尝试访问外文id,那么我可以毫无问题地看到它。显然,相关的方法在视图中并不容易获得

如何从视图访问关联的模型方法

--编辑--根据请求包括两个模型

电缆模型

class Cable < ActiveRecord::Base
    belongs_to :user, :inverse_of => :cables
    belongs_to :status, :inverse_of => :cables
end
class电缆:电缆
属于:状态,:反转=>:电缆
结束
地位模型

class Status < ActiveRecord::Base
    has_many :cables, :inverse_of => :statuses  
end
类状态:状态
结束

可能是错误的sql关联

SQL-

要获取状态记录,可以使用“加入”

 Status.joins( :cables ).where("cables.status_id IS NOT NULL")
这将返回与电缆关联的所有状态记录


然后,您可以循环遍历它,以获得每个状态的
stat

问题的原因是错误的测试向量。它们没有正确初始化,因此返回的错误是找不到stat方法。这让我觉得通过这个方法有问题,但是我已经知道,对于这个特殊的问题,有两个方面需要考虑。
当前用于呈现页面和正确关联的信息

出于某些原因,我的代码没有显示在问题中,只是想让您知道我正在处理它,可能没有与电缆对象(或
@cables
列表之一)关联的状态。尝试用
cable.status.Try(:insect)
替换
cable.status.stat
。这将输出相关状态的描述(如果存在)。如果你不知道问题出在哪里,那就回到我们这里来。你好,Yoshiji先生,我可以100%肯定地说,他们是正确关联的。第一个原因是在我的视图中=>Show@cable.status.stat可以正常工作,即使在rails控制台中,它也可以按其预期的方式工作。我尝试了。try(:inspect),但由于没有错误,它只是用\\Hello Saurabh输出了通常的结果,我将最后使用此选项,因为我不太了解原因。该协会已经在兼职工作,但在一个非常具体的案例中没有
 Status.joins( :cables ).where("cables.status_id IS NOT NULL")