Ruby on rails 3 Rails 3:获取关联表之间的属性以及如何在模型类中调用这些属性

Ruby on rails 3 Rails 3:获取关联表之间的属性以及如何在模型类中调用这些属性,ruby-on-rails-3,activerecord,associations,paperclip,Ruby On Rails 3,Activerecord,Associations,Paperclip,我有4张桌子,包括联赛、分区、球队和教练。这些表格之间的关系被描述为:一个联盟有许多个分区,一个分区有许多个队,但一个队只有一个教练。我还想通过与团队相关联的部门查询团队中的联赛 我当前的设置: class League < ActiveRecord::Base has_many :divisions has_many :teams, :through => :divisions, :readonly => true has_many :coaches, :thro

我有4张桌子,包括联赛、分区、球队和教练。这些表格之间的关系被描述为:一个联盟有许多个分区,一个分区有许多个队,但一个队只有一个教练。我还想通过与团队相关联的部门查询团队中的联赛

我当前的设置:

class League < ActiveRecord::Base
  has_many :divisions
  has_many :teams, :through => :divisions, :readonly => true
  has_many :coaches, :through => :teams, :readonly => true
end

class Division < ActiveRecord::Base
  belongs_to :league
  has_many :teams
end
但是,我收到以下错误消息:

`method_missing': undefined method `division' for #<Class:0x10c6a2900> (NoMethodError)
`method_missing':#的未定义方法'division'(nomethoderor)

我不确定这是否是您想要的,但获取关联对象非常容易:

team.rb中的
#
self.division.name#self不是必需的
#在division.rb中
self.teams.first.name
但是你不需要在你的联赛课程中有很多:团队,:到=>:分区,因为它已经链接到了分区,而分区是链接到团队的。您仅在设置多对多关联时使用“has_many-through”

#在league.rb中
自我。部门。第一。团队。第一

您也可以使用
asset\u path('teams/my name/some file.jpg')
来获取图像,但我想这只能在视图、帮助程序和控制器中访问。

我曾尝试在my team.rb中使用
self.division.name
,但它给我错误消息:
method\u缺少:未定义的method
division'(Thonedror)`真奇怪。您是否正确设置了迁移?您试图在类中的什么位置使用
分区.name
has_attached_file :logo, :styles => { :large => "120x180>", :thumb => "100x100>", :tiny => "25x25>" },  
      :url => "/assets/images/teams/#{self.division.name}/:style/:basename.:extension",  
      :path => ":rails_root/public/assets/images/teams/#{self.division.name}/:style/:basename.:extension"
`method_missing': undefined method `division' for #<Class:0x10c6a2900> (NoMethodError)