Rails 3 - 使用Active Record创建attr_accessible

时间:2017-08-07 02:12:32

标签: ruby-on-rails ruby-on-rails-3 splat

我通过将typed选项移动到新模型来动态t_a, t_b, t_c选项,正如我在使用常量来使*TYPED_DATA列可以通过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 访问之前所看到的那样,但既然模型已经迁移,我就不能再这样做了。有没有我想念的东西。

顺便说一句,当我用FactoryGirl重新运行我的规格时,这会失败。

 undefined reference to `XIChangeProperty'

动态公开这些属性的最佳选择是什么?

1 个答案:

答案 0 :(得分:0)

虽然此解决方案无法解决使用splat使用AR查询的技术问题。 它解决了使这些动态字段可访问的主要问题,特别是在需要访问大多数字段的情况下,依靠您想要保护的字段更好。

class Rules < ActiveRecord::Base
  attr_protected :id, :created_at, :updated_at
end