rails form_for选择没有属性

时间:2014-05-12 22:38:36

标签: ruby-on-rails ruby-on-rails-3 form-for

我尝试使用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>创建新课程,但不是课程模型的一部分。

具体来说,此表单用于创建多个课程,课程中的实际日期属性将根据选择下拉列表的值进行计算。

我是否在大局中遗漏了什么?或者我需要学习一些新语法吗?

2 个答案:

答案 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