2010-03-28 77 views
1

可以說我們有一些基本的AR模型。如何將屬性名稱轉換爲字符串?

class User < ActiveRecord::Base 
    attr_accessible :firstname, :lastname, :email 
end 

... 

some_helper_method(attrib) 
    ... 
def 

現在我想通過someuser.firstname來幫手,我想獲得兩者的價值和屬性名稱,例如:

some_helper_method(someuser.firstname) 
> "firstname: Joe" 

some_helper_method(someuser.lastname) 
> "lastname: Doe" 

回答

1

我不知道你想什麼這樣做,但這裏是一個可能的解決方案:

def some_helper_method(object, attr) 
    "#{attr}: #{object.send(attr)}" 
end 

現在,您可以撥打幫手如下:

some_helper_method(someuser, :firstname) 
# => "firstname: Joe" 
+0

很好,這個方法足以解決問題! – mdrozdziel 2010-03-28 19:16:14

0

你不能按照你的問題描述的方式。有一個簡單的原因:someuser.lastname返回一個字符串,這是一個姓氏。
但是你不知道這個字符串來自哪裏。你不知道這是姓氏。

一個解決辦法是執行以下操作的helper方法:

def some_helper_method(user, attribute) 
    "#{attribute.to_s}: #{user.send(attribute)}" 
end 

然後調用此方法如下:

some_helper_method someuser, :lastname 

的方法將調用someuser.lastname並返回屬性的名稱和它的值。

相關問題