[英]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.