Ruby on rails RubyonRails:下拉菜单

Ruby on rails RubyonRails:下拉菜单,ruby-on-rails,Ruby On Rails,我正在尝试创建一个下拉菜单,允许用户更改我的表中条目的字段。用户有三个选项之一——热、中、冷 我已经有了text\u字段,这些字段对其他字段的作用基本相同,当用户单击submit\u标记时,这些字段都会更新 是否有一种简单的方法来实现下拉框并使用submit_标记保存结果 谢谢 -克里斯我假设两件事: p>你可能想考虑GEM,代码更少。 <% semantic_form_for @stuff do |f| %> <% f.inputs do %>

我正在尝试创建一个下拉菜单,允许用户更改我的表中条目的字段。用户有三个选项之一——热、中、冷

我已经有了
text\u字段
,这些字段对其他字段的作用基本相同,当用户单击
submit\u标记时,这些字段都会更新

是否有一种简单的方法来实现下拉框并使用
submit_标记保存结果

谢谢

-克里斯

我假设两件事:


    <你是 > p>你可能想考虑GEM,代码更少。

    <% semantic_form_for @stuff do |f| %>  
       <% f.inputs do %>  
       <%= f.input :name %>  
       <%= f.input :temperature, :as => :select, 
                   :label => "Degree", :include_blank => false,
                   :collection => [["Hot", 1], ["Medium", 2], ["Cold", 3]] %>  
       <% end %>  
       <%= f.buttons %>    
    <% end %>  
    
    
    :选择,
    :label=>“Degree”,:include_blank=>false,
    :集合=>[[“热”,1],“中”,2],“冷”,3]]%>
    
    以下是基本答案。两元素数组的数组是关键部分

    <% form_for @entry do |f| %>
      <%= f.text_field :name %>
      <%= f.select :temperature, [['Hot','hot'],['Medium','medium'],['Cold','cold']] %>
      <%= f.submit %>
    <% end %>
    

    我也在做类似的事情。我只需在模型中添加一个enum或一个常量(类似于kikito之前所说的),然后在表单中调用select就可以实现这一点

    下面是它的工作原理

    使用常数:

    类ClassName bin/rails g迁移将列添加到表温度:字符串

    _form.html.erb

    <%= f.label :temperature %>
    <%= f.select :temperature, ClassName::TEMPERATURE %>
    
    <%= f.label :temperature %>
    <%= f.select :temperature, ClassName.temperatures.keys %>
    
    
    

    使用枚举:

    类ClassName bin/rails g迁移将列添加到表温度:整数

    _form.html.erb

    <%= f.label :temperature %>
    <%= f.select :temperature, ClassName::TEMPERATURE %>
    
    <%= f.label :temperature %>
    <%= f.select :temperature, ClassName.temperatures.keys %>
    
    
    

    希望对你有帮助

    根据以上所有答案,记住执行最后一个重要步骤:

    重新启动服务器

    作为一个新手,我想知道为什么我的阵列不能工作,即使我正确地遵循了所有步骤

    <%= f.label :temperature %>
    <%= f.select :temperature, ClassName.temperatures.keys %>