Ruby on rails 我需要类变量还是实例变量?
我目前有一个ActiveRecord模型“Team”,其列名为Ruby on rails 我需要类变量还是实例变量?,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,我目前有一个ActiveRecord模型“Team”,其列名为owner\u id 所有者id数据只是临时的,在调用\u create之后将是冗余的 我想删除“owner\u id”列并整理一下,但要保持功能正常工作。我该怎么做 背景资料: class Team < ActiveRecord::Base attr_accessible :name, :owner_id, :team_id has_many :team_memberships, :dependent => :d
owner\u id
所有者id数据只是临时的,在调用\u create之后将是冗余的
我想删除“owner\u id”列并整理一下,但要保持功能正常工作。我该怎么做
背景资料:
class Team < ActiveRecord::Base
attr_accessible :name, :owner_id, :team_id
has_many :team_memberships, :dependent => :destroy
has_many :users, through: :team_memberships
accepts_nested_attributes_for :team_memberships
after_create :create_team_membership
private
def create_team_membership
TeamMembership.create(
:user_id => self.owner_id,
:team_id => self.id,
:roles => "site_admin")
end
end
class团队:destroy
拥有多个:用户,通过::团队成员身份
为团队成员身份接受\u嵌套的\u属性\u
创建后:创建团队成员
私有的
def创建团队成员
TeamMembership.create(
:user\u id=>self.owner\u id,
:team_id=>self.id,
:角色=>“站点管理员”)
终止
终止
您应该能够添加一个attr\u访问器
,并继续分配owner\u id
属性,而无需db列,例如Team.new(:owner\u id=>7)
如果您将owner\u id更改为虚拟属性,我认为您可以删除该列。我错了吗?我需要把它放在attr\u accessible行中,对吗?是的,你需要把它放在
attr\u accessible
行中attr\u accessor
只向类中添加一个属性,而attr\u accessible
指示哪些属性可以批量分配。
class Team < ActiveRecord::Base
attr_accessor :owner_id
end
class Team < ActiveRecord::Base
def create_team_membership
team_memberships.create(:user_id => owner_id, :roles => "site_admin")
end
end