2015-04-23 2 views
3

Привет У меня есть проблема с «attr_accessor» в рельсах 4attr_accessor имя таблицы использования

У меня есть модель со многими ассоциациями и когда я использую attr_accessor я поставил field_name, но с моей ассоциацией у меня есть много таблицы с тем же имя поля.

Для Exemple

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

Но у меня есть поле: код в таблице агента и в языковой таблице. Я пытаюсь найти решение в Интернете, но безуспешно

Есть ли способ указать имя таблицы?

+0

вы хотите, чтобы ваш Аттрибут ': code' установить' 'code' из User',' 'Agent' или Language'? –

ответ

-1

Чтобы указать имя таблицы expicitly использовать

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

Вы можете использовать эти пути, чтобы получить модель speicific code от 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 

В качестве примера:

Теперь вы можете получить к нему доступ User.first.agent_code для модели agent Также вы можете получить к нему доступ User.first.language_code для language модель

Вы можете получить доступ к конкретным code по конкретной модели мудрый

Смежные вопросы