質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

Q&A

解決済

1回答

862閲覧

データベースに保存できない

toratail

総合スコア12

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails 6

Ruby on Rails 6は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

データベース

データベースとは、データの集合体を指します。また、そのデータの集合体の共用を可能にするシステムの意味を含めます

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

0グッド

0クリップ

投稿2020/10/23 12:02

ActiveModelを使用してのデータベース保存ができません。
controller内ではpermitを使用して定義しています。
ご協力よろしくお願いします。

orders_controller

1class OrdersController < ApplicationController 2 before_action :authenticate_user! 3 def index 4 @order = OrderDonation.new 5 @item = Item.find(params[:item_id]) 6 end 7 8 def create 9 @item = Item.find(params[:item_id]) 10 @order = OrderDonation.new(order_params) 11 if @order.valid? 12 Payjp.api_key = "sk_test_9963bfeecc996d98b54e1ab3" 13 Payjp::Charge.create( 14 amount: @item[:price], # 商品の値段 15 card: order_params[:token], # カードトークン 16 currency: 'jpy' # 通過の種類(日本円) 17 ) 18 @order.save 19 binding.pry 20 redirect_to root_path 21 else 22 render 'index' 23 end 24 end 25 26 private 27 28 def order_params 29 params.require(:order_donation).permit(:post_id, :prefecture_id, :city, :address, :buildingname, :tel, :token).merge(user_id: current_user.id, item_id: params[:item_id]) 30 end 31end

order_donation.rb(model)

1class OrderDonation 2 include ActiveModel::Model 3 4 attr_accessor :post_id, :prefecture_id, :city, :address, :buildingname, :tel, :orders_id, :user_id, :item_id, :token 5 6 with_options presence: true do 7 8 validates :post_id, format: {with: /\A[0-9]{3}-[0-9]{4}\z/, message: "is invalid. Include hyphen(-)"} 9 validates :prefecture_id, numericality: { other_than: 1 } 10 validates :city 11 validates :address 12 validates :buildingname 13 validates :tel 14 end 15 16 def save 17 orders = Order.create(user_id: user_id, item_id: item_id) 18 address = Address.create(post_id: post_id, prefecture_id: prefecture_id, city: city, address: address, buildingname: buildingname, tel: tel, orders_id: orders.id ) 19 end 20end 21

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

adressのマイグレーションファイルでorderとのアソシエーションが複数形になっていた。
rollbackで修正し解決した

訂正前 t.references :orders, null: false, foreign_key: true 訂正後 t.references :order, null: false, foreign_key: true

formオブジェクト

1訂正前 2 Address.create!(省略。。。orders_id: order.id ) 3 4訂正後 5 Address.create!(省略。。。order_id: order.id )

投稿2020/10/23 13:16

toratail

総合スコア12

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問