前提
paramsでidを取得したいのですが、型がstringとして取得されてしまうので、bigintにしたいです。
(いいね機能(visit)を作成しています)
発生している問題・エラーメッセージ
# ターミナル ActiveRecord::AssociationTypeMismatch (Restaurant(#99540) expected, got "17" which is an instance of String(#3520)):
該当のソースコード
rb
1ビュー 2<%= button_to '行ってない', restaurant_visits_path(restaurant.id), method: :post, class: "btn btn-sm btn-accent" %>
rb
1コントローラー 2class VisitsController < ApplicationController 3 def create 4 current_user.visit(params[:restaurant_id]) 5 end 6end
rb
1userモデル 2 3 has_many :visits, dependent: :destroy 4 has_many :visited_rst, through: :visits, source: :restaurant 5 6~ 省略 ~ 7 8 def visit(restaurant) 9 visited_rst << restaurant 10 end
試したこと
コントローラーでbinidng.pryで確かめても"restaurant_id"=>"17"}
となっています。
2: def create 3: binding.pry => 4: current_user.visit(params[:restaurant_id]) 5: end [1] pry(#<VisitsController>)> params => #<ActionController::Parameters {"authenticity_token"=>"fKJNJhVfpX13u6Y_Dg9_-oYVHcOxxlx2F-Tp5-Ad87dylLlEgwccYWSUegM-ZnRSWLKqTMCVb4DaSD3jgPuZkQ", "controller"=>"visits", "action"=>"create", "restaurant_id"=>"17"} permitted: false>
調べ方もよく分からないので、ご助言いただきたいです。
よろしくお願いいたします。
補足情報(FW/ツールのバージョンなど)
ruby 3.1.2
rails 6.1.6
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/12/03 06:00