在谷歌搜索到我如何解决这个问题后,我决定发布一个问题。我正在尝试向Devise Registrations控制器添加自定义操作“create_pro”,以便创建具有其他字段的用户(专业用户)。此表单与用户的设计创建操作位于同一页面上。
提交表单后,我一直收到以下错误:
未知行动
无法找到“create_pro”操作 设计:: RegistrationsController
我该如何解决这个问题?
路线
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>
答案 0 :(得分:1)
我对你所面临的'未知动作错误'没有答案,但我认为目前的解决方案不是最佳的。
由于您的目标是拥有以下两类用户
最好遵循How To: Customize routes to user registration pages的建议,并为这两类用户设置并行结构。
这将更符合两类用户之间的关系。