gpt4 book ai didi

ruby-on-rails - 在@object.variable 的情况下,可以外推变量吗?

转载 作者:太空宇宙 更新时间:2023-11-03 17:16:58 25 4
gpt4 key购买 nike

我有一个看起来像这样的散列:

extras = {'facebook' => '', 'twitter' => ''}

我的用户属性是这样的:

class User < ActiveRecord::Base
attr_accessible :facebook, :twitter, #...

我想以下列方式检索在我的 extras 散列中定义的数据(或更好的方式 - 这是我想到的方式)

extras.each do |k,v|
extras[k] = @user.k
end

这可能吗?

最佳答案

是的,您可以使用 .send(:method) 来做到这一点或 .try(:method) :

# with this kind of hash:
extras = {'facebook' => '', 'twitter' => ''}

您可以这样做来收集用户的信息:

extras.each_key do |key|
extras[key] = @user.send(key.to_sym)
end

或用.try() ,这更安全:它不会引发 NoMethodError 在向用户发送未知 key 的情况下:

extras.each_key do |key|
extras[key] = @user.try(key.to_sym)
end

你也可以用 map 来做:

extras.each_key{ |k| extras[k] = @user.send(k.to_sym) }

我发了一篇关于这段代码的帖子,你可以在这里看到: http://rails.co.nf/?p=31

关于ruby-on-rails - 在@object.variable 的情况下,可以外推变量吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14285478/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com