2015-04-23 42 views
3

嗨,我有在軌「attr_accessor」問題4Attr_accessor使用表名

我有很多的關聯模型,當我使用attr_accessor我把FIELD_NAME但我的聯想,我有許多表相同字段名稱。

對於爲例

class User < ActiveRecord::Base 
    has_one :agent 
    has_one :language 
    attr_accessor :code 
end 

但我有一個領域:在代理表和語言表的代碼。 我想在互聯網上找到解決方案,但沒有成功

有沒有辦法指定表名?

+0

你希望自己的ATTR':code'設置'User','Agent'或'Language'的'code'? –

回答

-1

要指定表名expicitly使用

class User < ActiveRecord::Base 
    self.table_name = "table_name" 
end 
1

您可以使用這些方法來從user模型

class User < ActiveRecord::Base 
    has_one :agent 
    has_one :language 
    delegate :code, to: :agent, prefix: true, allow_nil: true 
    delegate :code, to: :language, prefix: true, allow_nil: true 
end 

得到模型speicific code作爲一個例子:

現在,您可以訪問它User.first.agent_code for agent型號您還可以訪問User.first.language_code for language模型

您可以訪問特定code通過具體型號明智