Rails5.1.3でWebアプリケーションの勉強をしながら、実際に公開することを目指して制作しています。
editアクションを呼び出そうとしたときのエラーのようですが、ネットで調べると名前の指定が違います。というような
対応がありました。自分のコードを見直しても間違いを見つけれないので、解決できずに困っています。
エラー内容と、関連するコードは以下になります。
NameError in Staff::RegistersController#edit uninitialized constant Staff::RegisterForm Extracted source (around line #8): 7 def edit 8 @register_form = Staff::RegisterForm.new(Register.find(params[:id]))-----ここでエラーが発生。 9 @customer = Customer.find_by(id: current_customer.id) 10 @acc_name = @customer.family_name + ' ' + @customer.given_name 11 @acc_name_kana = @customer.family_name_kana + ' ' + @customer.given_name_kana
customers/index.html.erb <%= link_to '詳細', [ :staff, c ] %> | <%= link_to '編集', [ :edit, :staff, c ] %> | <%= link_to '確認', edit_staff_register_path(c) %> | <%= link_to '削除', [ :staff, c ], method: :delete, data: { confirm: '本当に削除しますか?' } %>
register_controller.rb class Staff::RegistersController < Staff::Base def show @register = current_customer @register = Register.find_by(customer_id: current_customer.id) end def edit @register_form = Staff::RegisterForm.new(Register.find(params[:id]))-----ここでエラー発生 @customer = Customer.find_by(id: current_customer.id) @acc_name = @customer.family_name + ' ' + @customer.given_name @acc_name_kana = @customer.family_name_kana + ' ' + @customer.given_name_kana end
app/forms/customer/register_form.rb class Staff::RegisterForm include ActiveModel::Model attr_accessor :register delegate :persisted?, :save, to: :register def initialize(register = nil) @register = register @register ||= Register.new end def assign_attributes(params = {}) @params = params register.assign_attributes(register_params) end private def register_params @params.require(:register).permit(:rg_1, :rg_2, :rg_3, :rg_4, :rg_5, :rg_6, :rg_7, :rg_8, :rg_9, :rg_10, :rg_11, :rg_12) end end
もしかして、customerコントローラのindexアクションからregisterコントローラのeditアクションに
アクセスしたのが間違いの原因なのでしょうか?
どなたか教えていただけないでしょうか?宜しくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/11 16:58
2018/01/11 17:31
2018/01/12 00:46