我目前正在构建我的第一个Rails 3应用程序,但无法弄清楚如何获得一项功能。
我有一个温度场,但我不想使用<%= f.text_field :temp %>
,而是想要两个下拉菜单。第一个下拉列表将允许选择97-99,而第二个下拉列表将允许选择0-9。在用户进行选择并保存之后,结果应该连接到例如98.2
在Rails 3中实现这一目标的最佳方法是什么?谢谢!
答案 0 :(得分:0)
您可以在您使用的任何模型中创建两个属性。每个要使用的字段一个。然后当你点击保存时,你在模型中有代码并使用这些属性来形成温度属性。
答案 1 :(得分:0)
我建议创建两个虚拟属性,每个部分对应一个温度(97-99和0-9)。然后在模型上定义一个before_validation方法,该方法接受这两个值(不会持久保存到数据库)并相应地设置temp属性(持久保存到数据库)。这样,您可以像往常一样验证临时值,并像查询数据库中的任何其他常规值一样查询它。它还可以让您的视图代码轻松实现。还有其他方法可以实现这一目标。
Ryan Bates有一个关于虚拟属性的精彩截屏视频。 http://railscasts.com/episodes/167-more-on-virtual-attributes