簡體   English   中英

無法從View Rails 3.2訪問關聯的模型方法

[英]cannot access associated model methods from view rails 3.2

情況

  • 我有兩種型號的電纜和狀態
  • 電纜屬於狀態,狀態有很多電纜
  • 任何返回單個記錄的地方,以下代碼均有效

     @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時,我只會看到一個地址。

如果我嘗試訪問foreign_id,那么我可以看到它而沒有問題。 顯然,相關的方法並不容易獲得。

如何從視圖訪問關聯的模型方法?

-編輯-根據要求包括兩個模型

電纜型號

class Cable < ActiveRecord::Base
    belongs_to :user, :inverse_of => :cables
    belongs_to :status, :inverse_of => :cables
end

狀態模型

class Status < ActiveRecord::Base
    has_many :cables, :inverse_of => :statuses  
end

關聯的SQL可能錯誤。

SQL-

Cable.where("cables.status_id IS NOT NULL")

要獲取狀態記錄,您可以使用join

 Status.joins( :cables ).where("cables.status_id IS NOT NULL")

這將返回與電纜關聯的所有狀態記錄。

然后,您可以遍歷它以獲取每個狀態的stat

問題的原因是測試向量錯誤。 它們未正確初始化,因此返回的錯誤是未找到stat方法。 這使我認為將方法傳遞給別人看是有問題的,但是我了解到,對於這個特定問題,有兩個方面需要考慮。 當前用於呈現頁面和適當關聯的信息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM