2011-07-26 29 views
1

可能有人請告訴我如何可以定義什麼樣的屬性我要找一個變量使用find_by_attribute?變量find_by_attribute?

例如,

@answer = User.first.answer 
    User.last.find_by_attribute(@answer) 

答案屬性的類型爲字符串

我希望有人能告訴我這是怎麼工作的

編輯

我剛剛意識到這並不能使我得到我期待的結果......這裏實際上是我需要的:attribu的名稱我試圖從另一個用戶訪問存儲在答案屬性。所以,我需要這樣的東西用戶@回答... ...不過這並不當然

EDIT2

好這裏的解決我的問題的工作:

@answer = User.first.answer 
    User.last.send("#{@answer}") 
    => true 
+0

你們是不是要找到具有相同的答案爲第一用戶的用戶? –

+0

這是一個奇怪的要求。你確定沒有其他方法可以達到你想要的結果嗎?重構你的模型?也許你可以提供一些關於你的用例的更多細節,所以我們可以幫你解決這個問題。 – emrass

+0

你在rails3上嗎?你是否試圖獲得User.last.answer的價值,但以動態的方式,你可能不知道.answer屬性的名稱? –

回答

2

好這裏的解決我的問題:

@answer = User.first.answer 
    User.last.send("#{@answer}") 
1

您需要知道您要查詢哪個屬性以便使用動態查找器,例如

User.find_by_answer(@answer).last 
+0

現在不能試試這個,但是如果屬性你查詢是不知道的,你可以嘗試一些像User.find(:all,:conditions => {attributename => attributevalue}) – emrass

+0

find_by_attribute decleration find_by_attributes(match,attributes,* args)我能夠實現像上面用正確的參數寫的東西嗎?但你的建議也可以工作 – Mexxer

+0

據我所知,沒有(也不可能)是一個「find_by_attribute」方法。只有動態查找方法find_by_ *其中*是您的實際屬性。如果您鍵入「find_by_attribute」,RoR會希望您的用戶擁有一個名爲「attribute」的屬性並將其與傳遞的值進行比較。 – emrass