我尝试使用form_for帮助器创建一个选择列表:
<%= bootstrap_form_for(@lesson) do |f| %>
<%= f.hidden_field('course_id', :value => @course.id) %>
<%= f.select(:start_time, days_of_week_options_for_select) %>
<%= f.text_field('starting_on', :value => Date.today.to_s(:short)) %>
<%= f.text_field('ending_on', :value => "5 June") %>
<% end %>
(我使用bootstrap_form gem使事情变得漂亮,但这不会影响问题,因为form_for
的子bootstrap_form_for
并没有改变任何东西。)
似乎上方的符号:start_time
具有属于Lesson的属性,但我不是因为该字段仅在期间使用> em>创建新课程,但不是课程模型的一部分。
具体来说,此表单用于创建多个课程,课程中的实际日期属性将根据选择下拉列表的值进行计算。
我是否在大局中遗漏了什么?或者我需要学习一些新语法吗?
答案 0 :(得分:2)
最简单的方法是在模型上使用attr_accessor
。这不会保留到DB / storage,但会创建一个可用于存储信息的临时属性。
attr_accessor :start_time
答案 1 :(得分:1)
最简单的方法是避免使用表单对象帮助程序:
<%= form_for(@lesson) do |f| %>
<%= f.hidden_field('course_id', :value => @course.id) %>
<%= select_tag(:start_time, days_of_week_options_for_select) %>
<%= ... %>
<% end %>
在获得要编译的表单后,您可以查看id的输出和输入名称,并以相同的方式命名select标记,然后它将像其他表单元素一样工作。
请参阅此文档:http://api.rubyonrails.org/classes/ActionView/Helpers/FormTagHelper.html#method-i-select_tag