Не смог четко сформулировать заголовок вопроса. Поясню, что нужно.
Модели:
class Item < ActiveRecord::Base
has_one: subitem
end
class Subitem < ActiveRecord::Base
belongs_to: item
end
Где то в контроллере:
@item = Item.new
@item.subitem = Subitem.new
Теперь
@item.subitem
не nil. Здесь все просто замечательно работает. Но вдруг возникла потребность обращаться к subitem через символ или строку. Переписываю тот код:
@item = Item.new
@item.methods(:subitem) = Subitem.new
Это не работает
@item.subitem
это nil. Пробовал через attributes, но выяснил путем эксперимента, что subitem для Item - это метод.
В общем мне нужно, чтобы в коде не было жесткой прописки наименования метода, а обращение к нему через его название. Нужно чтобы результат был как при жесткой прописке. Поможете?