[英]Can't create user, “undefined method `save' for nil:NilClass” using Devise in Rails 4
[英]Can't find where devise create method to create user
更新
我想为此添加更多详细信息。 我有一个用户模型,这个用户模型
has_many :trial_subscriptions
attr_accessible :trial_subscriptions_attributes
accepts_nested_attributes_for :trial_subscriptions, :allow_destroy => true
我正在构建一个自定义表单,因此当用户输入trial_email时,该表单将创建一个具有关联的trial_subscription的新用户
trial_subscription.rb模型是从manual_subscription模型继承的,manual_subscription是从订阅模型继承的。
订阅模式
belongs_to :user
我需要从has_many端建立关联。 现在,当涉及设计时,我很难弄清楚在哪里发布表单(让@user进行编辑)。 我需要知道创建用户时create方法在哪里,因此下面是我的问题。
这将是与/ sales网址中的普通注册分开的页面,因此我无法将嵌套字段添加到注册表单中。
我正在研究的Rails应用程序已设计安装在用户模型上。
在路线上
我有
devise_for :users, :controllers => {:registrations => "registrations"}
resources :users
注册表单位于views / devise / registrations / new.html.erb中
我有一个具有new和create方法的users_controller.rb
在users_controller.rb中有这个before_filter
before_filter :authenticate_admin!
我们已经安装了活动管理员。 我对代码还很陌生。 由于存在此过滤器,因此我确定不会在此控制器中创建用户。
当我去
/users/sign_up - there is the sign up page
如果我做
/users/new - I am redirected to /users/sign_up
所以我想用户正在注册控制器中创建,但是新方法是
def new
session[:qbid] = params[:qbid]
session[:trial] = params[:trial]
session[:sublength] = params[:sublength]
if session[:trial] = true
@trial_flow = true
end
super
end
没有User.new对象传递给视图进行编辑? 我猜想这个设计是不需要的。
我对在哪里创建用户感到困惑,因为我的任务是创建一个创建新用户的自定义表单。
我不知道将表格寄到哪里? registrations_controller?
该用户具有has_many订阅关联,我需要发布一个同时创建用户及其订阅的表单。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.