質問: Order.new(order_params) if @order.save order else render 'root' end end private def order_params params.require(:order).permit(:service, :quantity, :link, :price ,:agreement, :user_id) end
回答: うーん、あまりよくわからないですがポイントを使って買い物をしているみたいな処理でしょうか...? 結論から言うと上記エラーに関しては`@user.save`で解決だと思います。 `save`メソッドはカラムに対して使うのではなくレコードに対して使用します。 ちょっと突っ込みたいところがあるので一応記述しておきます...。 > > > ``` > def order > @user = current_user # @userはここ以外で使うの? 使わないのであればインスタンスにするべきではない... > @tpoint = @user.point.to_i # 現在の残りポイント? @tpointはインスタンスにするべきではない... > @tpoint = @user.point -= @order.price.to_i > @user.point = @tpoint > # 数値を扱うのであればカラムの属性をintegerにしましょう。そうすれば、@user.point -= @order.price だけで上の3行と同じ働きができますよ。 > @user.point.save # 間違い > # @user.save > end > ``` > > あとは`current_user`と`@order`がちゃんと取得できているのであればうまくいくと思います。