2017-04-23 6 views
0

私はdevise gemをインストールし、登録ページにいくつかの列を追加したかったのです。Ruby on Rails- gem devise、ArgumentError:引数の数が間違っています(0、予想1)

アプリ/コントローラ/ユーザ/ 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 

アプリ/ビュー/工夫/登録/ 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' 
} 

私はフォームに記入して提出しました。それは "ArgumentError:引数の数が間違っている(0、予想される1)"というエラーを示しています! 何か問題がありますか?

ありがとうございました! new.html.erbで

+0

エラートレースを追加できますか? –

+0

申し訳ありませんが、これは意味ですか? requirebin /レール 救助とLoadError =>電子 昇給e.message.include?( '春') APP_PATH = File.expand_pathを( '../../設定/アプリケーション'、__FILE__) 終了 require_relative "しない限り、 ../config/bootは、レール/コマンド」必要 ''(春 ') 終了 APP_PATH = <トップ(必須)>ビン/レール 救助とLoadError =>電子 昇給をe.message.include?ない限り' File.expand_path( '../../../ config/application'、__FILE__) require_relative '../config/boot' 'rails/commands'が必要です – JiaPing

+0

bin/spring lo ckfile = Bundler :: LockfileParser.new(Bundler.default_lockfile.read) spring = lockfile.specs.detect {| spec | spec.name == "春"} 春 Gem.use_paths Gem.dir、Bundler.bundle_path.to_s、* Gem.path 宝石 '春' であれば、spring.version は '春/ binstub' エンド 終了を要求 – JiaPing

答えて

0

、入力のためにあなたの入力のスペルがf.inputする必要があり、電子メール、また、あなたはcampany_idを与えているが、コントローラに、あなたはのcompany_idを使用していました。

とコントローラで:

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

あなただけで追加されたパラメータを許可する必要があります。 passwordまたはconfirm_passwordを許可する必要はありません。 また、許可されているか、またはフォームにあるすべてのパラメータは、あなたのテーブルにある必要があります。

これが役に立ちます。

関連する問題