wrong number of arguments (given 4, expected 3)

rails wrong number of arguments (given 4, expected 3)

railsにて架空のECサイトを作成しています。
railsチュートリアルにてログイン機能を実装し、その後に商品登録画面を作成しているところ
下記のエラーが出て原因が突き止めることができなくなっているため助言いただきたいです。
初心者のため簡単なミスの可能性ありますが何卒よろしくお願いします。
エラー内容は下記になります。

ArgumentError in Top#new Showing /Users/#名> 名前の為伏せます/stock_practice/app/views/top/new.html.erb where line #11 raised: wrong number of arguments (given 4, expected 3) Extracted source (around line #11): <!--入力画面--> <%= form_with model:@item, url:{action: 'create'} do |f| %> <%= f.label :product_name, "商品名" %> <%= f.text_field :product_name, required: true %> <%= f.label :arrival_source, "入荷元" %> Rails.root: /Users/kokimoriguchi/stock_practice Application Trace | Framework Trace | Full Trace app/views/top/new.html.erb:11 Request Parameters: None Toggle session dump Toggle env dump

該当のソースコード

**TOPコントローラー** class TopController < ApplicationController def index @item = Item.all end def new @item = Item.new @log = Log.new end def create #<!--入力画面--> @item = Item.new(item_params) if @item.save redirect_to confirm_path else flash.now[:alert] = '登録に失敗しました' @item = Item.new(item_params) render action: :index end end def confirm #<!--確認画面--> @item = Item.new(item_params) @log = Log.new(log_params) if @log.save redirect_to complete_path else flash.now[:alert] = '登録に失敗しました' @item = Item.new(item_params) @log = Log.new(log_params) end end def back end def edit end private def item_params params.permit(:product_name, :arrival_source, :manufactuer,) end def log_params params.require(:log).permit(:email, :tel) end end ~~打ち消し線~~ **top/new.html.erb** <h1>新規商品登録</h1> <p>必要事項を記入してください</p> <ul class="nav"> <li class="current">1.入力</li> <li>2.確認</li> <li>3.完了</li> </ul> <!--入力画面--> <%= form_with model:@item, url:{action: 'create'} do |f| %> <%= f.label :product_name, "商品名" %> <%= f.text_field :product_name, required: true %> <%= f.label :arrival_source, "入荷元" %> <%= f.text_field :arrival_source, required: true %> <%= f.label :manufactuer, "製造元" %> <%= f.text_field :manufactuer, required: true %> <%= f.submit "確認画面へ", class: "btn btn-primary" %> <% end %> <!--確認画面--> <!--完了画面--> ~~打ち消し線~~ **model/item.rb** class Item < ApplicationRecord include ActiveModel::Model include ActiveModel::Attributes with_options presence: true do validates :product_name, presence: true validates :arrival_source, presence: true validates :manufactuer, presence: true end def create @item = params[:item].permit(:product_name, :arrival_source, :manufactuer, :price) Item.create(@item) end end

試したこと

form_withの部分でのmodel@:itemを削除するとviewは実装され送信できるがDBの指定がないため保存がされない。
しかしこの記述をすると引数が合わないというエラーが出てしまい表示されない。
他の方々の質問等確認し色々試しましたがどれも合わず、、、
残り考えられるのがrailsチュートリアルで作成したクッキーなどが、
引数として残っているのかなど考えることしかできず、、、
お力をお借りしたいです。よろしくお願いします。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

コメントを投稿

0 コメント