我是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
以下是对我要做的事情的描述。用户登录系统,用户绑定到组织,每个组织都有一个社交实体,其中包含社交渠道和分数。我希望能够在视图中显示组织的分数。
答案 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
那是你在寻找什么?