사용자 정의 컨트롤러가 있지만 devise에서 create 액션을 무시하고 싶지 않습니다. 사용자를 등록하려고하면 다음과 같은 오류가 발생합니다.Ruby on Rails : 사용자 정의 Devise 등록 컨트롤러, 작업 만들기 요청
Unknown action
The action 'create' could not be found for Devise::RegistrationsController
사용자 정의 등록 컨트롤러가 있기 때문에 요청하고 있습니까? 그렇다면 여기에서 우선 적용하지 않는 모든 작업을 복사해야한다는 의미입니까? https://github.com/plataformatec/devise/blob/master/app/controllers/devise/registrations_controller.rb
또는 내 응용 프로그램에 문제가 있으십니까?
내 경로 : 이것은이 등록 양식입니다
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
내 유증 등록 컨트롤러
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
입니다 :
<%= 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 %>
그게 효과가있다. 폴더 이름으로 고안 할 수없는 이유는 무엇입니까? – hellomello
실제로 그럴 수 있다고 생각합니다.) 하지만 보통은 그런 응용 프로그램을 디버깅하는 고통스러운 경험을 가진 레일 규칙을 따르고 있습니다. 오류는 예기치 않은 곳에서 자주 발생하며 흔히 일부 명명 규칙을 따르지 않는 경향이 있습니다 . –
@RoaringStones 당신은 's'과 등록의 끝을 놓치고 있습니다. 이름은 registrations_controller.rb – Ricbermo