Ruby on rails Rails-根据用户输入选择对象属性
如何根据用户输入选择特定属性 例如,假设我有下面的对象表,带有属性“name”、“shape”、“color”。我正在尝试根据用户输入选择一个属性。例如,如果用户输入“1”,它应该返回第一个属性“name”的值 有没有一种方法可以做到这一点,而不用像下面这样用if语句硬编码所有选项?我的对象有28个属性,所以如果语句过多,那么执行所有这些属性Ruby on rails Rails-根据用户输入选择对象属性,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,如何根据用户输入选择特定属性 例如,假设我有下面的对象表,带有属性“name”、“shape”、“color”。我正在尝试根据用户输入选择一个属性。例如,如果用户输入“1”,它应该返回第一个属性“name”的值 有没有一种方法可以做到这一点,而不用像下面这样用if语句硬编码所有选项?我的对象有28个属性,所以如果语句过多,那么执行所有这些属性 if userInput == '1' return @object.name end 我不得不认为,这不是实现你的实际目标的好办法,而是为了回答你提出
if userInput == '1'
return @object.name
end
我不得不认为,这不是实现你的实际目标的好办法,而是为了回答你提出的问题:
return @object.send @object.attribute_names[userInput.to_i]
或许:
@object.send %w{fieldname anotherfield yetanotherfieldname}[userInput.to_i]
@object.attributes.values[userInput.to_i]
或许:
@object.send %w{fieldname anotherfield yetanotherfieldname}[userInput.to_i]
@object.attributes.values[userInput.to_i]