在此(索引)视图的控制器中,变量@eventtypes被分配了4个值(运动,音乐会,喜剧和戏剧)
然后下面的表单检索4个选项并在下拉菜单(HTML选择框)中显示它们
问题:当我提交此表单时,索引视图会显示事件名称&数字,但eventtype为空。我是一个总菜鸟,但我怀疑我需要一个“f”。行中的某些内容以“<%= select”开头。
请帮我理解解决方案。我使用的是最新的Rails 4和Ruby 2.0.0
<%= form_for(@tix) do |f| %>
<div class="field">
<%= f.label :eventname %><br>
<%= f.text_field :eventname %>
</div>
<div class="field">
<%= f.label :eventtype %><br>
<%= select(:eventtype, :eventtype, @eventtypes.collect {|e| [ e.category, e.id ] }) %>
</div>
<div class="field">
<%= f.label :price %><br>
<%= f.number_field :price %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
答案 0 :(得分:1)
当你说:
时,你可能会选择Kernel#select
<%= select(:eventtype, :eventtype, @eventtypes.collect {|e| [ e.category, e.id ] }) %>
<%= f.select(...
请参阅文档以获取正确的参数。
答案 1 :(得分:0)
正确的语法是
<%= f.select(:eventtype, @eventtypes.collect {|p| [p.category] }, { include_blank: true }) %>
注意:链接http://api.rubyonrails.org/classes/ActionView/Helpers/FormBuilder.html#method-i-select的语法不正确,因为它缺少'('在第一个'之前':'eventtype'