Ruby on rails 在@object.variable的情况下,可以推断变量吗?
我有一个如下所示的散列:Ruby on rails 在@object.variable的情况下,可以推断变量吗?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个如下所示的散列: extras = {'facebook' => '', 'twitter' => ''} 我的用户属性如下所示: class User < ActiveRecord::Base attr_accessible :facebook, :twitter, #... 这可能吗?是的,您可以使用或: 您可以这样做来收集用户的信息: extras.each_key do |key| extras[key] = @user.send(key.to_sy
extras = {'facebook' => '', 'twitter' => ''}
我的用户属性如下所示:
class User < ActiveRecord::Base
attr_accessible :facebook, :twitter, #...
这可能吗?是的,您可以使用或: 您可以这样做来收集用户的信息:
extras.each_key do |key|
extras[key] = @user.send(key.to_sym)
end
或者使用,哪个更安全:如果向用户发送未知密钥,它将不会引发NoMethodError:
extras.each_key do |key|
extras[key] = @user.try(key.to_sym)
end
您还可以使用地图执行此操作:
extras.each_key{ |k| extras[k] = @user.send(k.to_sym) }
我发了一篇关于这个代码的帖子,你可以在这里看到:
是的,您可以使用或: 您可以这样做来收集用户的信息:
extras.each_key do |key|
extras[key] = @user.send(key.to_sym)
end
或者使用,哪个更安全:如果向用户发送未知密钥,它将不会引发NoMethodError:
extras.each_key do |key|
extras[key] = @user.try(key.to_sym)
end
您还可以使用地图执行此操作:
extras.each_key{ |k| extras[k] = @user.send(k.to_sym) }
我发了一篇关于这个代码的帖子,你可以在这里看到:
对象#send
可以接受字符串。不太清楚@MrYoshiji提到的试试
extras.each_key { |k| extras[k] = @user.send(k) }
注意:要按方法名称读取变量,您需要使用类似于attr\u accessible:facebook,:twitter
Object\send
的内容创建该方法,该方法可以使用字符串。不太清楚@MrYoshiji提到的试试
extras.each_key { |k| extras[k] = @user.send(k) }
注意:要按方法名读取变量,您需要使用类似于attr\u accessible:facebook,:twitter