Ruby on rails 在Rails中显示所有关联的记录信息
我正在建立一个事件议程页面,其中有一个会话列表和与这些会话相关的发言者,但我得到了一个关于发言者信息的未定义方法 看法 扬声器模型 会话模型 事件模型 错误Ruby on rails 在Rails中显示所有关联的记录信息,ruby-on-rails,mongodb,mongoid,Ruby On Rails,Mongodb,Mongoid,我正在建立一个事件议程页面,其中有一个会话列表和与这些会话相关的发言者,但我得到了一个关于发言者信息的未定义方法 看法 扬声器模型 会话模型 事件模型 错误 您的演讲者和会话之间的关联是混乱的。如果您想要使用HABTM扬声器,还需要使用HABTM扬声器会话 编辑: 经过一些讨论,这就是你要找的。演讲者有多个:会话和会话属于:会话表中具有外键演讲者id的演讲者。演讲者属于:会话和会话有多个:演讲者没有意义。在这一行:,第1天是什么?它是会话的一个属性吗?你可以发布你的schema.rbday_1的
您的演讲者和会话之间的关联是混乱的。如果您想要使用HABTM扬声器,还需要使用HABTM扬声器会话 编辑:
经过一些讨论,这就是你要找的。演讲者有多个:会话和会话属于:会话表中具有外键演讲者id的演讲者。演讲者属于:会话和会话有多个:演讲者没有意义。在这一行:,第1天是什么?它是会话的一个属性吗?你可以发布你的schema.rbday_1的作用域是数据库中的一个day字段。上面的关联不正确。一次会议有一名发言者。一个演讲者可以参加许多会议。正确的关联应该是什么?好的。。错误是未定义的方法名?你确定在你的视图中没有一个拼写错误是你不小心在叫这个名字吗?此外,s.speaker不应该工作,因为您的会话有许多发言者。会话中的演讲者方法不存在,但演讲者确实存在。绝对没有打字错误,实际上一个会话有一个演讲者。一个演讲者可以参加许多会议。正确的关联应该是什么?因此,您想要的实际上是Speaker有很多:会话&会话属于:Speaker,会话表中具有外键Speaker\u id。是的,该关联更正了我的所有问题!非常感谢:
<% @event.sessions.day_1.each do |s| %>
<%= s.time.strftime("%H:%M") %>
<%= s.title %>
<%= s.speaker.name %>
<%= s.speaker.company %>
<% end %>
def index
@sessions = Session.all
end
has_and_belongs_to_many :sessions
has_and_belongs_to_many :events
has_and_belongs_to_many :speakers
scope :day_1, where(day: 'Day 1')
scope :day_2, where(day: 'Day 2')
default_scope -> { order_by("time ASC") }
has_and_belongs_to_many :sessions
undefined method `name?' for "536f3cd4ad921dd345000001":String