2011-01-24 76 views
0

如何根據用戶輸入選擇特定屬性?例如,假設我有以下對象表,其中包含屬性「名稱」,「形狀」,「顏色」。我試圖能夠根據用戶輸入選擇一個屬性。例如,如果用戶輸入'1',它應該返回第一個屬性'name'的值。Rails - 根據用戶輸入選擇對象屬性

有沒有辦法做到這一點,而不用硬編碼所有的選項if語句如下所示?我的對象有28個屬性,所以這些if語句看起來過多。

if userInput == '1' 
return @object.name 
end 

回答

1

我不得不認爲這是不是達到你的實際目標的好方法,但要回答你問的問題:

return @object.send @object.attribute_names[userInput.to_i] 

或許:

@object.send %w{fieldname anotherfield yetanotherfieldname}[userInput.to_i] 

或者也許:

@object.attributes.values[userInput.to_i]