attr_accessible для Rails 4 динамических атрибутов
Я использую Rails 4 и хочу определить динамические атрибуты, что-то вроде:
(0..6).each do |i|
attr_accessible "attr-#{i}"
сейчас это фальшивая поговорка
NoMethodError: undefined method `attr_accessible' for #<Class:0x007fdeb8911380>
Я считаю, что это потому, что attr_accessible больше не используется в Rails 4, так как я могу этого добиться? Благодарю.
1 ответ
Решение
Попробуй это:
dynamic_attributes = {test: 1, test2: 2, test3: 3}
#object could be self depending on the context
object.instance_eval(class << self; self; end) }.class_eval do
dynamic_attributes.each do |attr, value|
define_method(attr){ value }
define_method(attr){|new_value| dynamic_attributes[attr] = new_value }
end
end