2017-04-23 2 views
0

Ich installiere Juwel und wollte einige Spalten auf der Registrierungsseite hinzufügen.Ruby on Rails- Gem devise, ArgumentError: falsche Anzahl von Argumenten (gegeben 0, erwartet 1)

app/controllers/users/registrations_controller.rb

class Users::RegistrationsController < Devise::RegistrationsController 
before_action :configure_sign_up_params, only: [:create] 


protected 

def configure_sign_up_params 
devise_parameter_sanitizer.permit(:sign_up){|u| u.permit(:company_id, :name, :email, :profile, :prefecture_id, :address, :password, :password_confirmation)} 
end 

app/views/ersinnen/Anmeldungen/new.html.erb

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

<div class="form-inputs"> 
<%= f.label :campany_id %><br> 
<%= f.collection_select :campany_id, Campany.all, :id, :name, include_blank: true %> 
<%= f.input :name, required: true, autofocus: true %> 
<%= f.inneput :email, paceholder:"メールアドレス", required: true, autofocus: true %> 
<%= f.input :profile, required: true, autofocus: true %> 
*<%= f.label :prefecture_id %><br> 
<%= f.collection_select :prefecture_id, JpPrefecture::Prefecture.all, :code, :name %> 
<%= f.input :address, required: true, autofocus: true %> 
<%= f.input :password, required: true, hint: ("#{@minimum_password_length} characters minimum" if @minimum_password_length) %> 
<%= f.input :password_confirmation, required: true %> 
</div> 

<div class="form-actions"> 
<%= f.button :submit, "新規登録" %> 
</div> 
<% end %> 

config/routes.rb

devise_for :users, controllers: { 
registrations: 'users/registrations' 
} 

Als ich das Formular ausgefüllt und eingereicht habe. Es zeigt "ArgumentError: falsche Anzahl von Argumenten (0 gegeben, erwartet 1)" dieser Fehler! Ist etwas falsch?

Vielen Dank!

+0

Können Sie bitte Fehler-Trace hinzufügen? –

+0

Entschuldigung, meinst du das? requirebin/Schienen Rettungsloaderror => e erhöhen, es sei denn e.message.include? ('Frühling') Ende APP_PATH = File.expand_path ('../../ config/Anwendung', __FILE__) require_relative ' ../config/boot Schienen/Befehle‘ erfordern '' ist/Schienen Rettungsloaderror => e erhöhen, es sei denn e.message.include? ('Frühling') Ende APP_PATH = File.expand_path ('../../ config/application', __FILE__) require_relative '../config/boot' erfordern 'rails/commands' – JiaPing

+0

bin/spring lo ckfile = Bundler :: LockdateiParser.new (Bundler.default_lockfile.read) spring = lockfile.specs.detect {| spec | spec.name == "Frühling"} wenn Frühjahr Gem.use_paths Gem.dir, Bundler.bundle_path.to_s, * Gem.path gem 'Frühling', spring.version require 'Frühling/binstub' Ende Ende – JiaPing

Antwort

0

In new.html.erb, für die Eingabe per E-Mail Ihre Eingabe Rechtschreibung f.input sein sollte, auch haben Sie campany_id gegeben, aber in der Steuerung haben Sie verwendet company_id.

Und in der Steuerung:

def configure_sign_up_params 
devise_parameter_sanitizer.permit(:sign_up){|u| u.permit(:company_id, :name, :email, :profile, :prefecture_id, :address)} 
end 

Sie müssen nur die Parameter ermöglichen, die von Ihnen hinzugefügt wurden. Sie müssen kein Passwort oder confirm_password zulassen. Auch alle Parameter erlaubt oder die in Form vorhanden sind, müssen in Ihrer Tabelle sein.

Hoffe, das hilft.

Verwandte Themen