我正在尝试制作发票应用。创建发票的表单应包含一组复选框,以便用户可以选择要开票的课程,但我收到此错误:undefined method 'collection_check_boxes'
。
以下是涉及的模型:
class Lesson < ActiveRecord::Base
attr_accessible :lesson_time, :lesson_date, :invoice_id
belongs_to :invoice
end
class Invoice < ActiveRecord::Base
attr_accessible :amount, :due_date
has_many :lessons
end
观点:
<%= form_for(@invoice) do |f| %>
<fieldset>
<%= f.label :lessons %>
<%= f.collection_check_boxes(:lessons, Lesson.all, :id, :lesson_date) %>
<%= f.submit %>
</fieldset>
<% end %>
答案 0 :(得分:4)
collection_check_boxes不是form_builder的方法。要么:
<%= collection_check_boxes(:lessons, Lesson.all, :id, :lesson_date) %>
这将生成与您的模型无关的html(您将无法使用MyModel.new(params[my_model]
)并期望获得正确的响应。您可能需要手动调用my_model.lessons = params [:lessons],或者您可以传递一个html名称参数以使您的复选框名称符合rails约定。)
或者,如果您在标记时使用formtastic,则可以使用:
<%= f.input :lessons, :as => :check_boxes, :collection => Lesson.all %>