我正在尝试使用Devise为用户模型,Reform gem和simple_form创建一个事件计划清单应用程序。
当我访问'/ new_checklist'路径时,我一直看到此错误消息:未定义的方法`event_date'用于#<哈希: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
我曾希望将Devise用户模型嵌套在事件清单模型中,并使用Reform gem同时创建两者。这可不可以吗?谢谢!
答案 0 :(得分:0)
有同样的问题。按照https://github.com/apotonick/reform#compositions上的方法进行操作。
基本上你必须:
class EventChecklistForm < Reform::Form
include Composition
...
end