Rails 4,strong_parameters,dynamic attr_accessible:如何将父db信息转换为类实例

时间:2013-06-23 13:39:14

标签: ruby-on-rails-4 attr-accessible strong-parameters

我正在尝试根据其父帐户将attr_accessible添加到用户模型。我知道用户类实例还没有访问其父级,但我无法弄清楚如何执行此操作。任何建议都会很棒。

这就是我让strong_params工作的方式,并希望在用户模型中做类似的事情(或做更好的事情)。

#appilcation_controller
  ...
  def config_permitted_parameters
   ...
   devise_parameter_sanitizer.for(:account_update) { |u| u.permit(*user_attributes)}
  end

  def user_attributes
    attrs = [:name, :email, :password, :password_confirmation, :current_password, :primary_account, :account_id]
    @account.user_attributes.each do |att|
      attrs << att[0].to_sym
    end
    attrs
  end

这就是现在有效的方法:

#User.rb

%w[no_call_list informal_name].each do |key|
  attr_accessible key
  store_accessor :properties, key
  scope "has_#{key}", lambda { |value| where("properties @> hstore(?, ?)", key, value) }
end

这就是喜欢的工作方式:

#User.rb

#@account.user_attributes.each do |key|
#current_user.account.user_attributes.each do |key|
  attr_accessible key
  store_accessor :properties, key
  scope "has_#{key}", lambda { |value| where("properties @> hstore(?, ?)", key, value) }
end

0 个答案:

没有答案