2014-03-04 69 views
0

我目前有一個名爲owner_id的ActiveRecord模型「團隊」。我需要一個類變量還是一個實例變量?

owner_id數據只是臨時的,一旦after_create被調用,它將是多餘的。

我想刪除'owner_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 
+0

如果更改owner_id作爲一個虛擬的屬性,我認爲你可以刪除列。我錯了嗎? –

回答

0

您應該能夠添加attr_accessor,繼續沒有數據庫列例如分配owner_id屬性Team.new(:owner_id => 7)

class Team < ActiveRecord::Base 
    attr_accessor :owner_id 
end 

您還可以避免明確地分配team_id,如果你想:

class Team < ActiveRecord::Base 
    def create_team_membership 
    team_memberships.create(:user_id => owner_id, :roles => "site_admin") 
    end 
end 
+0

我需要將它保存在attr_accessible行中嗎? – cjm2671

+0

是的,你需要把它保存在'attr_accessible'行。 'attr_accessor'只是爲你的類添加一個屬性,'attr_accessible'則指示哪些屬性可以被批量分配。 – Ben

+0

令人驚歎 - 謝謝! – cjm2671

相關問題