Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/60.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 循环遍历模型中的所有公共属性_Ruby On Rails_Ruby_Ruby On Rails 4 - Fatal编程技术网

Ruby on rails 循环遍历模型中的所有公共属性

Ruby on rails 循环遍历模型中的所有公共属性,ruby-on-rails,ruby,ruby-on-rails-4,Ruby On Rails,Ruby,Ruby On Rails 4,我有一个用户模型,其中有些属性是公共的(用户可以编辑),有些属性是私有的(Salt等) 假设模型有N个公共属性(例如电子邮件和姓氏)和M个私有属性(例如Salt、确认令牌) 我想我想做的是 user.attrs.each |name, value| do something(name, value) end 我可以使用attr_访问器吗 使用rails 4.0.2和ruby 2.0.0 有什么想法吗?干杯您可能有更多允许的属性而不是不允许的属性,因此我将创建一个受保护的属性名称数组,

我有一个用户模型,其中有些属性是公共的(用户可以编辑),有些属性是私有的(Salt等)

假设模型有N个公共属性(例如电子邮件和姓氏)和M个私有属性(例如Salt、确认令牌)

我想我想做的是

user.attrs.each |name, value| do 
   something(name, value) 
end
我可以使用attr_访问器吗

使用rails 4.0.2和ruby 2.0.0


有什么想法吗?干杯

您可能有更多允许的属性而不是不允许的属性,因此我将创建一个受保护的属性名称数组,并在循环属性时忽略这些名称

protected_attributes = %w(password salt confirmation_token)

user.attributes.each do |name, value|
  unless protected_attributes.include?(name)
    something(name, value)
  end
end

也给我们看看你的模型..Ruby对象实际上没有公共属性,只有公共方法。因此,这是一个相当难解决的问题。不过,对于Rails,您可能能够循环浏览与ActiveRecord模型相关联的数据库列……太棒了,这正是我想要的!