Rails 3 - Splat attr_accessible 与 Active Record
Rails 3 - Splat attr_accessible with Active Record
我正在通过将 typed
选项移动到新模型来使它们动态化,正如您在我使用常量使列 t_a, t_b, t_c
可通过 *TYPED_DATA
访问之前看到的那样,但是现在模型已经迁移了,我不能再做了。有什么我想念的吗?
顺便说一句,当我用 FactoryGirl 重新运行我的规格时,这失败了。
class Rules < ActiveRecord::Base
#TYPED_DATA = %w{a b c}.map { |t| t.prepend('t_').to_sym }
attr_accessible :name, *Typed.prefixed
end
# typed.rb
class Typed < ActiveRecord::Base
def self.prefixed
Typed.pluck(:name).map { |name| name.prepend('t_').to_sym }
end
end
动态公开这些属性的最佳选择是什么?
虽然这个解决方案没有解决使用 AR query with splat 的技术问题。
它解决了使这些动态字段可访问的主要问题,特别是在大多数字段需要可访问的情况下,最好依赖于您想要保护的字段。
class Rules < ActiveRecord::Base
attr_protected :id, :created_at, :updated_at
end
我正在通过将 typed
选项移动到新模型来使它们动态化,正如您在我使用常量使列 t_a, t_b, t_c
可通过 *TYPED_DATA
访问之前看到的那样,但是现在模型已经迁移了,我不能再做了。有什么我想念的吗?
顺便说一句,当我用 FactoryGirl 重新运行我的规格时,这失败了。
class Rules < ActiveRecord::Base
#TYPED_DATA = %w{a b c}.map { |t| t.prepend('t_').to_sym }
attr_accessible :name, *Typed.prefixed
end
# typed.rb
class Typed < ActiveRecord::Base
def self.prefixed
Typed.pluck(:name).map { |name| name.prepend('t_').to_sym }
end
end
动态公开这些属性的最佳选择是什么?
虽然这个解决方案没有解决使用 AR query with splat 的技术问题。 它解决了使这些动态字段可访问的主要问题,特别是在大多数字段需要可访问的情况下,最好依赖于您想要保护的字段。
class Rules < ActiveRecord::Base
attr_protected :id, :created_at, :updated_at
end