前提・実現したいこと
Ruby on Railsで簡単なサイトを作成中で、会員の住所などをの情報を会員テーブルとは別に、Addressテーブルに登録できるようにしたいです。
NoMethodError (undefined method `permit' for "フォーム入力値":String):
のエラーが発生しており原因が分からないため、ご教授いただきたいです。
発生している問題・エラーメッセージ
NoMethodError (undefined method `permit' for "フォーム入力値":String): app/controllers/customers/addresses_controller.rb:22:in `address_params' app/controllers/customers/addresses_controller.rb:6:in `create'
該当のソースコード
AddressesController
1def create 2 @address = Address.new(address_params) 3 @address.save 4 rediect_to addresses_path 5 end 6 7private 8def address_params 9 params.require(:address).permit(:name, :post_code, :address) 10end
index.html.erb
1<div> 2 <div> 3 <h3>配送先</h3> 4 <%= form_with(model: @address, url: addresses_path(@address)) do |f| %> 5 <div class="field"> 6 <%= f.label :郵便番号 %> 7 <br> 8 <%= f.text_field :post_code %> 9 </div> 10 11 <br> 12 13 <div class="field"> 14 <%= f.label :住所 %> 15 <br> 16 <%= f.text_field :address %> 17 </div> 18 19 <br> 20 21 <div class="field"> 22 <%= f.label :名前 %> 23 <br> 24 <%= f.text_field :name %> 25 </div> 26 27 <br> 28 29 <div class="actions"> 30 <%= f.submit '登録する' %> 31 </div> 32 <% end %> 33 </div> 34</div> 35
schema.rb
1create_table "addresses", force: :cascade do |t| 2 t.integer "customer_id", null: false 3 t.string "name", null: false 4 t.string "post_code", null: false 5 t.string "address", null: false 6 t.datetime "created_at", null: false 7 t.datetime "updated_at", null: false 8 end
routes.rb
1scope module: :customers do 2 resources :addresses, except: [:new, :show] 3end
試したこと
カラム名が誤っているのかと考え確認しましたが、特に問題はなさそうでした。
スペリングミスも確認しましたが、問題はありませんでした。
補足情報(FW/ツールのバージョンなど)
Rails -v 5.2.4.4
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/21 10:15
2020/11/21 17:05