1

これを修正する方法についてどこでもグーグルで調べた後、質問を投稿することにしました。カスタム アクション「create_pro」を Devise 登録コントローラーに追加して、追加のフィールドを持つユーザー (プロ ユーザー) を作成できるようにしようとしています。このフォームは、ユーザーのデバイス作成アクションと同じページにあります。

フォームを送信した後、次のエラーが表示され続けます。

不明なアクション

Devise::RegistrationsController のアクション 'create_pro' が見つかりませんでした

どうすればこれを修正できますか?

ルート

  devise_for :users,:controllers => { :registrations => "registrations" }
  devise_scope :user do
    post "gopro", :to => "devise/registrations#create_pro"
  end

登録コントローラー

class RegistrationsController < Devise::RegistrationsController
  before_filter :authenticate_user!, :only => :token

  def new
    super
  end

  def create
    @user = User.new(params[:user])
    if @user.save
      sign_in @user
      flash[:notice] = "Welcome to Banking Analytics."
      redirect_to '/mybank'
    else
      render :action => :new
    end
  end

  def create_pro
    @user = User.new(params[:user])
    if @user.save
      sign_in @user
      flash[:notice] = "Welcome to Banking Analytics."
      redirect_to '/mybank'
    else
      render :action => :new
    end
  end
end

意見

<div class="signup_form_basic">
<%= simple_form_for @user, :url => url_for(:controller => 'registrations', :action => 'create_pro') do |f| %>
  <%= f.error_notification %>
    <%= f.input :email, :required => true, :autofocus => true, :label => 'Username ( Your Email )', :placeholder => 'Email Address' %>
    <%= f.input :password, :required => true, :autofocus => true, :label => 'Password', :placeholder => 'Password' %>
    <%= f.input :password_confirmation, :required => true, :autofocus => true, :label => 'Confirm Password', :placeholder => 'Password Confirmation' %>
    <%= f.button :submit, "Sign Up  >>", class: 'btn btn-inverse' %>
<% end %>
</div>
4

1 に答える 1

1

あなたが直面している「不明なアクション エラー」に対する答えはありませんが、現在の解決策は最適ではないと思います。

あなたの目標は、次の 2 つのクラスのユーザーを持つことです。

  1. プロユーザー、および
  2. 通常の(非プロ)ユーザー、

「方法: ユーザー登録ページへのルートをカスタマイズし、2 種類のユーザーの並列構造をセットアップする」の提案に従うのがおそらく最善です。

これは、2 種類のユーザー間の関係とより一致します。

于 2012-10-08T06:42:04.453 に答える