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