2014-07-11 76 views
0

我正在尋找一種方法來實現類地址(BillingAddress,ShippingAddress e.t.c)的多重角色,方法是避免在我的項目中使用第二個表address_roles。有沒有可能的方法?具有多個角色的rails模型類

我的地址如下模式:

class Address < ActiveRecord::Base 
    self.inheritance_column = nil 
    serialize :roles 
    attr_accessible :street, :number, :postal, :city, :country 

end 

class InstallationAddress < Address 
end 

class BillingAddress < Address 
end 

class ShippingAddress < Address 
end 

我希望能夠給角色爲一個數組保存,如[ 「BillingAddress」, 「InstallationAddress」]

編輯1:應該如何我在我的模型中描述它爲了工作?例如,InstallationAddress.all將如何僅返回具有角色InstallationAddress的地址,或者如果我擁有belongs_to:user,那麼將如何檢索user.installation_address。

回答

0

你試過的東西幾乎是正確的。是不是..??
1)在地址模型中添加一個新的「角色」列。
2)將地址模型中的角色設置爲可串行化(您已經編寫了)。
3)在您想要放置下拉列表的視圖頁面中包含多個選擇下拉菜單。

<%= form.select :roles, 
         [["BillingAddress","BillingAddress"], ["InstallationAddress","InstallationAddress"]], 
         :prompt => "Select Roles", 
         :multiple => true 
%> 

您不需要有任何新的address_roles模型。而且,如果你不期待這樣的方式,我很抱歉。

謝謝!

+0

我對我的問題並不十分清楚。我審查了它。謝謝 – skalogirou

+0

是的,我也不太清楚你的問題。但是,我回答了一些假設。請不要猶豫,讓你的問題更清楚。如果我知道,我會盡力回答你。謝謝!! –