簡體   English   中英

找不到在何處設計創建方法來創建用戶

[英]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訂閱關聯,我需要發布一個同時創建用戶及其訂閱的表單。

您需要自定義devise的注冊控制器。 查看文檔盡管文檔僅顯示了如何自定義會話控制器(登錄),但步驟相似,您只需要以不同的方式命名自定義控制器即可。

如果您想知道,可以在這里看到設備控制器的外觀。 當您自定義它們時,將使用繼承。 那是您應該閱讀的另一個主題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM