需要有关rails中模型关联的指导

时间:2012-11-30 19:17:30

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.2

我是Ruby on Rails的新手,我正在尝试访问特定组织的分数。我想知道是否有人可以指出我能够做到这一点的正确方向。我目前有以下型号:

这是用户模型

class User < ActiveRecord::Base
 attr_accessible :fname, :lname, :email, :password, :password_confirmation
 has_secure_password
 belongs_to :organization

这是组织模型

class Organization < ActiveRecord::Base
 attr_accessible :name, :employee_number, :country, :postal_code, :sic_code, :primary_url
 has_many :users
 has_many :social_entities
 has_many :social_scores, :through => :social_entity  
 has_many :social_channels, :through => :social_entity

这是实体模型

class SocialEntity < ActiveRecord::Base
 attr_accessible :name, :org_id
 has_many :social_channels
 has_many :social_scores  
 belongs_to :organization

这是渠道模型

class SocialChannel < ActiveRecord::Base
 attr_accessible :authorized, :channel_identifier, :channel_type, :name, :social_entity_id
 belongs_to :social_entity  # edited from original post, :socialentity

以下是分数模型

class SocialScore < ActiveRecord::Base
 attr_accessible :engagement_score, :popularity_score, :presence_score, :reputation_score,   :score_period_end, :score_period_start, :score_period_type, :score_timestamp, :social_entity
 belongs_to :social_entity

以下是对我要做的事情的描述。用户登录系统,用户绑定到组织,每个组织都有一个社交实体,其中包含社交渠道和分数。我希望能够在视图中显示组织的分数。

1 个答案:

答案 0 :(得分:3)

如果你有一个Organization实例,那么has_many声明会创建一个属性(一个方法,真的),它获取一个由social_scores引用的SocialScores集合,例如

@org = Organization.find(:first)  # or however else it is that you get the organization instance
@org.social_scores.each do |ss|
   puts "Popularity score for id #{ss.id} is #{ss.popularity_score}"
end

那是你在寻找什么?