Ruby on Rails: Controlador de Registro Custom Devise, Pedindo para Criar uma Ação
Eu tenho um controlador de registro personalizado, mas não quero substituir uma ação de criação do dispositivo. Quando tento inscrever um usuário, recebo este erro:
Unknown action
The action 'create' could not be found for Devise::RegistrationsController
É pedir porque eu tenho um controlador de registro personalizado? Se assim for, isso significa que eu preciso copiar todas as ações que não estou substituindo aqui:https://github.com/plataformatec/devise/blob/master/app/controllers/devise/registrations_controller.rb
Ou é porque tem algo errado com meu aplicativo?
Minhas rotas:
devise_for :user, :controllers => { :registrations => "devise/registrations" }, :skip => [:sessions] do
get 'signup' => 'devise/registrations#new', :as => :new_user_registration
post 'signup' => 'devise/registrations#create', :as => :user_registration
end
Este é o meu controlador de registro
class Devise::RegistrationsController < DeviseController
skip_before_filter :require_no_authentication
def edit
@user = User.find(current_user.id)
@profile = Profile.new
end
def update
# required for settings form to submit when password is left blank
if params[:user][:password].blank? && params[:user][:password_confirmation].blank?
params[:user].delete(:password)
params[:user].delete(:password_confirmation)
end
@user = User.find(current_user.id)
if @user.update_attributes(params[:user])
set_flash_message :notice, :updated
# Sign in the user bypassing validation in case his password changed
sign_in @user, :bypass => true
redirect_to after_update_path_for(@user)
else
render "edit"
end
end
protected
def after_update_path_for(resource)
user_path(resource)
end
def after_sign_up_path_for(resource)
user_path(resource)
end
end
Este é o formulário de registro:
<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %>
...
<div>
<%= button_tag :type => :submit, :class => "btn btn-large btn-inverse" do %>
Sign up
<% end %>
</div>
...
<% end %>