我已经重读了协会的 Rails 指南,但仍然把我的头撞到墙上。我在 Stack Overflow 上看到了一些高级问题,但无法确定它们是否能阐明我的问题。也许我还没有把我的思想包裹在这件事上。请告诉我我没有看到什么。
我有一个 School.rb,其中 has_many Events,has_many Venues。每个活动和场地都属于_to School。我正在尝试将场地与活动联系起来。它们与学校相关联,因为它们具有匹配的 school_id。正如预期的那样,学校的名称很容易在 Event#show 和 Venue#show 中应用。诀窍是如何制作 Event 控制器以使用 school_id 在 Event#show 页面中拉取 Venue 的 addy?
我的尝试不断丢失,所以我开始思考也许我必须让 Event belongs_to Venue 和 Venue has_many Events。这是正确的做法吗?
我尝试 <%= @event.venue.address %> 失败,因为 nil:NilClass 的“未定义方法‘地址’
也许我想多了,但正如我上面提到的,我知道的不够多,无法提出正确的问题。如果我用英语进行查询,它将是“获取其 school_id 与当前/活动事件的 school_id 匹配的 Venue 实例。” 那有意义吗?我试图在rails guide中找到接近的东西并尝试了这个:
@venues = Venue.where(:school_id => @school_id)
[]:ActiveRecord::Relation 的未定义方法“地址”。场地地址在场地模型中。
这是我的school.rb:
class School < ActiveRecord::Base
has_many :events, :dependent => :destroy
has_many :venues, :dependent => :destroy
has_and_belongs_to_many :users
belongs_to :event belongs_to :venue
def self.fetch_for_name(_name)
school = self.new(:name => _name)
end
end
这是我的 event.rb:
class Event < ActiveRecord::Base
resourcify
belongs_to :school
belongs_to :venue
end
这是我的 Venue.rb:
class Venue < ActiveRecord::Base
resourcify
belongs_to :school
has_many :events
end
请帮我克服这一步,山姆