【问题标题】:Rails form_for setting options and setting selected optionRails form_for 设置选项和设置选定选项
【发布时间】:2013-07-24 14:08:08
【问题描述】:

另一个简单的问题,我很抱歉,但我似乎无法找到解决我正在尝试做的事情的方法。

我有一个带有选择字段 (vehicle_size) 的表单,我想用数据库中当前设置了 vehicle_size 的记录的所有现有选项填充该字段。我还想将所选选项设置为数据库中当前设置的任何选项(如果设置),但我想我遇到的问题是该值尚未设置的原因。

我目前有这个代码:

<%= f.select(:vehicle_size, @models.index_by {|m| m.vehicle_size}, :selected => :vehicle_size) %>

它正确填充了选择选项,但在我的新页面和编辑页面(都使用此表单)中,选择菜单为空白,即使当前所有记录都设置为现有选项之一(vehicle_size 对于某些人实际上可能为空白未来的记录)。

如果我从菜单中选择一个选项并保存记录,则 vehicle_size 选项具有一个奇怪的值。类似于:

#<Model:0x007fd13e6c3790>

我很确定我以错误的方式使用 index_by,所以一些关于我所缺少的东西的指针会很棒。

【问题讨论】:

    标签: mysql ruby-on-rails select indexing form-for


    【解决方案1】:

    f.select的参数为:attribute_name,option_tags,options
    option_tags应该是一串html选项标签。
    有一些助手可以从值数组、集合等构造这样的字符串:options_for_selectoptions_from_selection_for_select

    您必须使用这些助手之一。

    您可以通过以下方式获取现有的vehicle_sizees:

    Model.pluck(:vehicle_size).uniq
    

    所以你的选择可能看起来像:

    <%= f.select :vehicle_size, options_for_select(Model.pluck(:vehicle_size).uniq,@model.vehicle_size) %>
    

    请参阅表单助手上的Rails Guide

    【讨论】:

    • 非常感谢。我真的需要全神贯注地寻找正确的术语,并花一些时间学习更多 Ruby 和 Rails,非常感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2015-08-27
    • 1970-01-01
    • 1970-01-01
    • 2012-04-23
    • 1970-01-01
    • 1970-01-01
    • 2013-10-26
    • 2017-02-10
    相关资源
    最近更新 更多