繁体   English   中英

在Ruby on Rails中获取关系n:m的对象

[英]Get object of relation n:m in Ruby on Rails

我有两个模型:

  1. 档案
  2. 模数

它们之间的关系是:多对多,有一个表映射关系:modulos_perfiles

我需要获取属于“ perfil”的所有“模数”。

<% @perfiles.each do |perfil| %>
    <% @m = perfil.modulo.last %>
    <%= @m.ruta %><br/>
<% end %>

但是我得到这个错误:

nil:NilClass的未定义方法“ ruta”

其中“ ruta”是“模”表的列。

我做的:

<% @perfiles.each do |perfil| %>
    <% @m = perfil.modulo.last %>
    <%= debug @m %><br/>
<% end %>

我可以看到@m对象的所有属性,如下所示:

红宝石/物件:模数

属性:

  • 编号:7
  • 说明:Busquedas
  • 芸芸:/ busquedas
  • created_at:2012-11-25 02:23:51.984916000 Z
  • Updated_at:2012-11-25 02:23:51.984916000 Z

但是我不明白为什么不能通过以下方式获得此属性:

<%= @m.ruta %>

有任何想法吗,谢谢!

更新

我的模型类是:

class Perfil < ActiveRecord::Base
    has_many :usuario
    has_and_belongs_to_many :modulo
end

class Modulo < ActiveRecord::Base
    has_and_belongs_to_many :perfiles
end

class ModulosPerfiles < ActiveRecord::Base
end

**

回答

**

我没有足够的声誉来发布答案。

我已解决:

我做的:

<% @perfiles.each do |perfil| %>
    <% perfil.modulo.each do |modulo| %>
        <%= modulo.ruta %><br/>
    <% end %>
<% end %>

这样我就可以获得对象“ modulo”的任何属性。

谢谢。

<% @perfiles.each do |perfil| %>
    <% perfil.modulo.each do |modulo| %>
        <%= modulo.ruta %><br/>
    <% end %>
<% end %>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM