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 %>