Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails-根据用户输入选择对象属性_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails Rails-根据用户输入选择对象属性

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 我不得不认为,这不是实现你的实际目标的好办法,而是为了回答你提出

如何根据用户输入选择特定属性

例如,假设我有下面的对象表,带有属性“name”、“shape”、“color”。我正在尝试根据用户输入选择一个属性。例如,如果用户输入“1”,它应该返回第一个属性“name”的值

有没有一种方法可以做到这一点,而不用像下面这样用if语句硬编码所有选项?我的对象有28个属性,所以如果语句过多,那么执行所有这些属性

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]