假设我们有一些基本的AR模型。
class User < ActiveRecord::Base
attr_accessible :firstname, :lastname, :email
end
...
some_helper_method(attrib)
...
def
现在我想将someuser.firstname传递给helper,我想得到值和属性名称,例如:
some_helper_method(someuser.firstname)
> "firstname: Joe"
some_helper_method(someuser.lastname)
> "lastname: Doe"
答案 0 :(得分:1)
我不确定你要做什么,但这是一个可能的解决方案:
def some_helper_method(object, attr)
"#{attr}: #{object.send(attr)}"
end
现在您可以按如下方式调用帮助程序:
some_helper_method(someuser, :firstname)
# => "firstname: Joe"
答案 1 :(得分:0)
您不能按照问题中描述的方式进行操作。原因很简单:someuser.lastname
返回一个字符串,这是姓氏
但是你不知道这个字符串来自哪里。你无法知道这是姓氏。
一种解决方案是执行以下辅助方法:
def some_helper_method(user, attribute)
"#{attribute.to_s}: #{user.send(attribute)}"
end
然后使用以下方法调用此方法:
some_helper_method someuser, :lastname
该方法将调用someuser.lastname
并返回属性的名称及其值。