Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 问题覆盖设计注册控制器_Ruby On Rails_Ruby_Forms_Devise_Haml - Fatal编程技术网

Ruby on rails 问题覆盖设计注册控制器

Ruby on rails 问题覆盖设计注册控制器,ruby-on-rails,ruby,forms,devise,haml,Ruby On Rails,Ruby,Forms,Devise,Haml,实际上,我正试图覆盖我的Desive注册控制器,但我面临一个问题。当我试图从窗体调用我的自定义注册控制器时,我的自定义注册控制器未被调用 routes.rb: Rails.application.routes.draw do devise_for :users, controllers: { registrations: 'users/registrations' } end app/controller/users/registrations\u controller.rb class

实际上,我正试图覆盖我的Desive注册控制器,但我面临一个问题。当我试图从窗体调用我的自定义注册控制器时,我的自定义注册控制器未被调用

routes.rb:

Rails.application.routes.draw do
   devise_for :users, controllers: { registrations: 'users/registrations' }
end
app/controller/users/registrations\u controller.rb

class Users::RegistrationsController < Devise::RegistrationsController
  skip_before_action :verify_authenticity_token

  #POST /users
  def create
    puts "ENTER"
    #super
  end
end
class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception, prepend: true
  before_action :configure_permitted_parameters, if: :devise_controller?

protected

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:firstname, :lastname, :address, :phone, :gender])
  end
end
但当我从这个Haml表格中调用它时:

.form-zone-container
    .form-zone
      %form.form{"accept-charset" => "UTF-8", :action => "/users", :enctype => "multipart/form-data", :method => "post"}
        .title
          Personal informations
        .radio-btn
          #form_gender
            %input#form_gender_1.check{"aria-required" => "true", :name => "user[gender]", :required => "required", :type => "radio", :value => "Male"}/
            %label.required{:for => "form_gender_1"} Male
            %input#form_gender_0.check{"aria-required" => "true", :name => "user[gender]", :required => "required", :type => "radio", :value => "Female"}/
            %label.required{:for => "form_gender_0"} Female
        %input{:name => "user[firstname]", :placeholder => "name", :type => "text", :value => (@params[:user]['firstname'] if @params[:user] && @params[:user]['firstname'])}/
        %input{:name => "user[lastname]", :placeholder => "Last name", :type => "text", :value => (@params[:user]['lastname'] if @params[:user] && @params[:user]['lastname'])}/
        %input{:name => "user[email]", :placeholder => "Email", :type => "email", :value => (@params[:user]['email'] if @params[:user] && @params[:user]['email'])}/
        %input{:name => "user[password]", :placeholder => "password", :type => "password"}/
        %input{:class => "confirm_password", :placeholder => "Confirm your password", :type => "password"}/
        %input{:name => "user[phone]", :placeholder => "Phone", :type => "tel"}/
        %input.place{:name => "user[address]", :placeholder => "Address", :type => "text", :value => (@params[:meeting]['address'] if @params[:meeting] && @params[:meeting]['address'])}/
        %a.little-green-btn{:onclick => "$(this).closest('form').submit()"} Send
我得到那些日志:

Started POST "/users" for 127.0.0.1 at 2017-09-22 11:32:16 +0200
Processing by Users::RegistrationsController#create as */*
  Parameters: {"user"=>{"email"=>"test@gmail.com", "password"=>"[FILTERED]", "firstname"=>"test", "lastname"=>"test1", "phone"=>"123456789", "address"=>"test", "gender"=>"test"}}
ENTER
No template found for Users::RegistrationsController#create, rendering head 
:no_content
Completed 204 No Content in 1065ms (ActiveRecord: 0.0ms)
Started POST "/users" for 127.0.0.1 at 2017-09-22 11:39:37 +0200
Processing by Users::RegistrationsController#create as HTML
  Parameters: {"user"=>{"gender"=>"Male", "firstname"=>"test", "lastname"=>"test", "email"=>"test@gmail.com", "password"=>"[FILTERED]", "phone"=>"test", "address"=>"test"}}
  User Load (0.3ms)  SELECT  "users".* FROM "users" WHERE "users"."id" = $1 ORDER BY "users"."id" ASC LIMIT $2  [["id", 2], ["LIMIT", 1]]
Redirected to http://localhost:3000/
Filter chain halted as :require_no_authentication rendered or redirected
Completed 302 Found in 35ms (ActiveRecord: 3.8ms)

Started GET "/" for 127.0.0.1 at 2017-09-22 11:39:37 +0200
Processing by Rails::WelcomeController#index as HTML
  Rendering /Users/admin/.rvm/gems/ruby-2.4.1@global/gems/railties-5.1.4/lib/rails/templates/rails/welcome/index.html.erb
  Rendered /Users/admin/.rvm/gems/ruby-2.4.1@global/gems/railties-5.1.4/lib/rails/templates/rails/welcome/index.html.erb (2.5ms)
Completed 200 OK in 37ms (Views: 5.1ms | ActiveRecord: 0.0ms)
在最后一个例子中,我不知道发生了什么,我的日志中没有“Enter”。我注意到唯一的变化是:

用户处理::RegistrationsController#创建为*/*
用户处理::RegistrationsController#创建为HTML

希望有人能帮我解决这个问题

提前感谢,

更新

耙路径

                    Prefix Verb   URI Pattern                                 Controller#Action
          new_user_session GET    /users/sign_in(.:format)                    devise/sessions#new
              user_session POST   /users/sign_in(.:format)                    devise/sessions#create
      destroy_user_session DELETE /users/sign_out(.:format)                   devise/sessions#destroy
         new_user_password GET    /users/password/new(.:format)               devise/passwords#new
        edit_user_password GET    /users/password/edit(.:format)              devise/passwords#edit
             user_password PATCH  /users/password(.:format)                   devise/passwords#update
                           PUT    /users/password(.:format)                   devise/passwords#update
                           POST   /users/password(.:format)                   devise/passwords#create
  cancel_user_registration GET    /users/cancel(.:format)                     users/registrations#cancel
     new_user_registration GET    /users/sign_up(.:format)                    users/registrations#new
    edit_user_registration GET    /users/edit(.:format)                       users/registrations#edit
         user_registration PATCH  /users(.:format)                            users/registrations#update
                           PUT    /users(.:format)                            users/registrations#update
                           DELETE /users(.:format)                            users/registrations#destroy
                           POST   /users(.:format)                            users/registrations#create
尝试使用表单_执行以下操作:

      = form_for @user, url: "/users", html: {class: 'form'} do |f|
        .title
          Personal informations
        .radio-btn
          #form_gender
            = f.radio_button(:gender, "Male", checked: true)
            = f.label(:gender, "Male")
            = f.radio_button(:gender, "Female")
            = f.label(:gender, "Female")
        = f.text_field(:firstname)
        = f.text_field(:lastname)
        = f.email_field(:email)
        = f.password_field(:password)
        = f.telephone_field(:phone)
        = f.text_field(:address)
        = f.submit("Send")

仍然得到相同的结果。

您的方法是正确的,请尝试在您的注册控制器中的回调之前添加一个require\u no\u身份验证
before\u操作:require\u no\u身份验证,only::create
。尝试添加它,但没有成功,仍然面临相同的问题:(您能添加rails路由的输出吗?您的意思是
rake路由
?只是f.y.i.rails路由命令在rails版本5+中使用,它们的作用相同