Rails5.1.3でWebアプリケーション制作の勉強をしています。エラーの内容がわからないので教えていただけないでしょうか?
エラーの内容 NoMethodError in Customer::BanksController#create private method `require' called for {:customer_id=>92}:Hash Extracted source (around line #20): 18 private 19 def bank_params 20 @params.require(:bank).permit(:bk_name, :office, :account, :acc_name, :acc_name_kana) 21 end 22 end Rails.root: /home/vagrant/chibi/chibi Application Trace | Framework Trace | Full Trace app/forms/customer/bank_form.rb:20:in `bank_params' app/forms/customer/bank_form.rb:15:in `assign_attributes' app/controllers/customer/banks_controller.rb:44:in `create'
NoMethodError in Customer::BanksController#create
private method `require' called for {:customer_id=>92}:Hash
質問が重複してしまっているのですがこのエラーはどういうことを言っているのでしょうか?
どなたか教えていただけないでしょうか?宜しくお願いします。
追記
このように記述しています。
class Customer::BankForm include ActiveModel::Model attr_accessor :bank delegate :persisted?, :valid?, :save, to: :bank def initialize(bank = nil) @bank = bank @bank ||= Bank.new @customer.build_bank unless @bank end def assign_attributes(params = {}) @params = params bank.assign_attributes(bank_params) end private def bank_params @params.require(:bank).permit(:customer_id, :bk_name, :office, :account, :acc_name, :acc_name_kana) end end
@paramsの部分をparamsに変えて実行すると下記エラーに変わります。
NameError (undefined local variable or method `params' for #<Customer::BankForm: 0x007ff8438dc258> Did you mean? @params): app/forms/customer/bank_form.rb:20:in `bank_params' app/forms/customer/bank_form.rb:15:in `assign_attributes' app/controllers/customer/banks_controller.rb:44:in `create'
何が原因なのかがわからないので教えていただけないでしょうか?
回答3件
下記のような回答は推奨されていません。
このような回答には修正を依頼しましょう。
2017/12/04 04:49