Ruby on Rails: Controlador de registro de dispositivos personalizados, que solicita una acción de creación
Tengo un controlador de registro personalizado, pero no quiero anular una acción de creación desde el dispositivo. Cuando intento registrar un usuario, aparece este error:
Unknown action
The action 'create' could not be found for Devise::RegistrationsController
¿Lo está pidiendo porque tengo un controlador de registro personalizado? Si es así, ¿significa eso que necesito copiar todas las acciones que no voy a anular desde aquí?https://github.com/plataformatec/devise/blob/master/app/controllers/devise/registrations_controller.rb
¿O es porque hay algo mal con mi aplicación?
Mis rutas:
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 es mi controlador de registro de dispositivos
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 es el formulario 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 %>