0

我正在尝试使用 Devise 为用户模型、Reform gem 和 simple_form 创建一个活动计划清单应用程序。

当我访问 '/new_checklist' 路径时,我不断看到此错误消息:undefined method `event_date' for #< Hash:0x007fb18f5b71a8 >

我究竟做错了什么?由于各种原因,我将我的用户资源嵌套在我的清单资源中。

这是我的事件清单控制器:

def new_checklist
  @form = EventChecklistForm.new(event_checklist: EventChecklist.new,
                            user: User.new)
end

用户型号:

class User < ActiveRecord::Base
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable
  require 'securerandom'
  has_many :checklist_items
  belongs_to :event_checklist
end

清单模型:

class EventChecklist < ActiveRecord::Base
  has_many :checklist_items
  has_many :users
  accepts_nested_attributes_for :checklist_items
end

事件清单表格模型:

class EventChecklistForm < Reform::Form
  # include DSL
  include Reform::Form::ActiveRecord

  property :event_date, on: :event_checklist
  property :code, on: :event_checklist

  property :email, on: :user
  property :password, on: :user
  property :password_confirmation, on: :user
end

我也尝试将“model :event_checklist”添加到事件清单模型的末尾,但这并没有什么不同。

最后,表格:

= simple_form_for @form do |f|

  = f.input :event_date
  = f.input :code
  = f.input :email
  = f.input :password
  = f.input :password_confirmation

我曾希望将设计用户模型嵌套在事件清单模型中,并使用改革 gem 同时创建两者。这不能做吗?谢谢!

4

1 回答 1

0

有同样的问题。按照https://github.com/apotonick/reform#compositions上的操作说明进行操作。

基本上你必须:

class EventChecklistForm < Reform::Form
  include Composition
  ...
end
于 2014-12-16T09:23:59.183 回答