रेल्स पर डेविस और रूबी: साइन अप पर सभी मान्यताओं के साथ "खाली नहीं किया जा सकता"

वोट
1

मैं साइन अप करने की कोशिश कर रहा हूं Affiliate Devise का उपयोग करना।

/affiliates/registrations_controller.rb

class Affiliates::RegistrationsController < 
    Devise::RegistrationsController
    include StatesHelper, ApplicationHelper

    before_action :configure_sign_up_params, only: [:create]
    before_action :configure_account_update_params, only: [:update]

    # GET /resource/sign_up
    def new
        @plan = AffiliatePlan.find_by(nickname: params.permit(:plan)[:plan].downcase)
        super
    end

    # GET /resource/edit
    def edit
        @states = us_states
        super
    end

    # PUT /resource
    def update
        @states = us_states
        super
        if resource.address_coordinates.length > 1 
            resource.services.each{ |s| s.update_attributes( {lonlat: POINT(#{resource.address_coordinates.join(' ')})})}
        end 
    end

    def update_resource(resource, params)
        resource.update_without_password(params)
    end

    protected

    # If you have extra params to permit, append them to the sanitizer.
    def configure_sign_up_params
        devise_parameter_sanitizer.permit(:sign_up, keys: [:business_name, :website, :phone, :affiliate_plan_id, contact_name: [:first_name, :last_name], address: [:street_address, :address_line2, :city, :state, :zip_code]])
    end

    # If you have extra params to permit, append them to the sanitizer.
    def configure_account_update_params
        devise_parameter_sanitizer.permit(:account_update, keys: [:business_name, :website, :phone, :affiliate_plan_id, contact_name: [:first_name, :last_name], address: [:street_address, :address_line2, :city, :state, :zip_code]])
    end

    # The path used after sign up.
    def after_sign_up_path_for(resource)
        affiliate_signups_path
    end
end

/affiliates/registrations/new.html.erb

<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>

    <%= devise_error_messages! %>

    <% if @plan %>
        <%= f.hidden_field :affiliate_plan_id, value: @plan.id %>
    <% else %>
        <%= f.hidden_field :affiliate_plan_id, value: resource.affiliate_plan_id %>
    <% end %>

    <%= f.fields_for :contact_name do |n| %>

        <%= n.text_field :first_name, autofocus: true, placeholder: First Name*, class: form-control, required: true %>

        <%= n.text_field :last_name, placeholder: Last Name*, class: form-control, required: true  %>
     <% end %>

    <%= f.text_field :business_name, placeholder: Company Name, class: form-control %>

    <%= f.email_field :email, autocomplete: email, placeholder: Email Address*, class: form-control, required: true %>

    <%= f.password_field :password, autocomplete: new-password, placeholder: Create a Password, class: form-control, required: true %>

    <%= f.password_field :password_confirmation, autocomplete: new-password, placeholder: Confirm Password, class: form-control, required: true %>


    <%= f.submit Next, class: btn btn-primary btn-sm %>
<% end %>

routes.rb

devise_for :affiliates, path: partners, controllers: {
  sessions: 'affiliates/sessions',
  registrations: 'affiliates/registrations'
}

फॉर्म जमा करते समय मुझे हमेशा सत्यापन संबंधी त्रुटियां मिलती हैं:

7 errors must be fixed
   - Email can't be blank
   - Password can't be blank
   - Password is too short (minimum is 9 characters)
   - Password must contain at least one digit
   - Password must contain at least one punctuation mark or symbol
   - Password must contain at least one upper-case letter
   - Affiliate plan must exist

लॉग तत्काल रोलबैक दिखाता है, लेकिन कोई अन्य जानकारी नहीं:

Started POST /partners for 127.0.0.1 at 2020-05-25 14:09:59 -0400
Processing by Affiliates::RegistrationsController#create as HTML
  Parameters: {utf8=>✓, authenticity_token=>SowYVWzTqVYdwZWjYjNc3hlGC5UITqt+bKjQuSATOpLcdVGb52x7gEi8p15MmhlZrLNLpD07fCxp5Gya8/cQMg==, affiliate=>{affiliate_plan_id=>2, contact_name=>{first_name=>Stephen, last_name=>Tilly}, business_name=>1995, email=>sarwerera@email.com, password=>[FILTERED], password_confirmation=>[FILTERED]}, commit=>Next}
(0.2ms)  BEGIN
  ↳ app/controllers/affiliates/registrations_controller.rb:18
   (0.2ms)  ROLLBACK
  ↳ app/controllers/affiliates/registrations_controller.rb:18
  Rendering affiliates/registrations/new.html.erb within layouts/application
  Rendered affiliates/registrations/new.html.erb within layouts/application (2.6ms)

मुझे यकीन नहीं है कि वहाँ से कहाँ जाना है, कोई विचार?

25/05/2020 को 20:36
का स्रोत उपयोगकर्ता
अन्य भाषाओं में...                            


1 जवाब

वोट
0

मैं टिप्पणी नहीं कर सकता और कुछ प्रश्न पूछ सकता हूं, इसलिए मैं कुछ धारणाएँ बनाऊंगा। लेकिन यहाँ कुछ लापता टुकड़े हैं जिनकी मुझे तलाश है: Affiliate मॉडल और यदि आपने इसे मुख्य डेविस संसाधन के रूप में कॉन्फ़िगर किया है या आपके पास एक और है User

मुझे लगता है कि आपके पास एक और डेविस संसाधन सेटअप है, यही वजह है कि आपने यह सेटअप बनाया है। मैं मान लूंगा User । उस मामले में एक मुख्य कारण यह हो सकता है कि डेविस उस मॉडल को संसाधन के रूप में उम्मीद कर रहा है, यही कारण है कि यह मान्यताओं के बारे में इरोस फेंक रहा है। चूंकि Devise :: RegistrationsController की उम्मीद है params[:user] ई-मेल और पासवर्ड युक्त।

सुझाव: यदि ऐसा है तो मैं संबद्ध संसाधन से संबद्ध प्रोफ़ाइल को संबद्ध करने और वहाँ से जाने पर विचार करूँगा। Ie संबद्ध -> संबंधित: से -> उपयोगकर्ता। यह आपके जीवन को आसान बना देगा;)

अगर मेरी धारणा गलत है तो मुझे बताएं wrong

08/06/2020 को 07:45
का स्रोत उपयोगकर्ता

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more