発生している問題・エラーメッセージ
なし(render :new)にて保存できず戻ってしまう。
該当のソースコード
ordercontroller
1class OrdersController < ApplicationController 2 3 def index 4 @orders = Order.all 5 end 6 7 def new 8 @order = Order.new 9 end 10 11 def create 12 @order = Order.new(order_params) 13 if @order.save 14 redirect_to_root_path 15 else 16 render :new 17 end 18 end 19 20 private 21 22 def order_params 23 params.require(:order).permit(:order_content).merge(user_id: current_user.id) 24 end 25end 26
ordermodel
1class Order < ApplicationRecord 2 belongs_to :user 3 4 validates :order_content, presence: true 5 6end
usermodel
1class User < ApplicationRecord 2 # Include default devise modules. Others available are: 3 # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable 4 devise :database_authenticatable, :registerable, 5 :recoverable, :rememberable, :validatable 6 7 has_many :orders 8end
newhtml
1<%= form_with model: @order, local: true do |f| %> 2 <div class="fild"> 3 <%= f.label :content, "注文内容" %><br /> 4 <%= f.text_area :content %> 5 </div> 6 <div class="actions"> 7 <%= f.submit "注文する", class: :send %> 8 </div> 9 <% end %>
試したこと
def create
@order = Order.new(order_params)
binding.pryで止めparamsを見るとorder_contentしかなくuser_idが送られていないようです。アソシエーションやparamsにミスは無いように見えますがどこが間違っていますか?
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。