2

私は3つのモデルを持っています:

class Depot < ActiveRecord::Base
    has_many :car_amounts
    has_many :cars, :through => :car_amounts
end

class CarAmount < ActiveRecord::Base
  belongs_to :depot
  belongs_to :car
end

class Car < ActiveRecord::Base
  has_many :car_amounts
  has_many :depots, :through => :car_amounts
end

デポ、金額、車のデータを含むjsonパラメーターを保存する最良の方法は何ですか? このようなもの:

{
"Depots": {
    "title": "Dealer1"
},
"Amounts": [
    {
        "amount": "1"
        "car": [
            {
                "Type": "supercar1"
            }
         ]
    }, 
    {
        "amount": "5"
        "car": [
            {
                "Type": "supercar2"
            }
         ]
    }, 

   ]
}
4

2 に答える 2

0

あなたの質問が何なのか少しわかりませんが、あなたが探しているのはaccepts_nested_attributes_for. ドキュメントはhttp://api.rubyonrails.org/classes/ActiveRecord/NestedAttributes/ClassMethods.htmlにあります。ドキュメントから:

ネストされた属性を使用すると、親を介して関連付けられたレコードに属性を保存できます。

例として、モデルを追加できaccepts_nested_attributes_for :carsますDepots。上記の JSON ではうまく機能しませんが、一般的な考え方ではうまく機能します。

これがあなたの質問ではない場合は、コメントしてください。明確にします。

于 2012-11-25T23:29:21.250 に答える
0

このデータをデータベースに入れる必要がある場合は、データを「シード」してデータベースにインポートします。ファイル db/seed.rb を作成して、学生をデータベースにインポートしたいとしましょう。既に作成/移行された学生モデルがあります。私のseed.rbでは、次のようなことをします...

students = ActiveSupport::JSON.decode(File.read('db/students.json'))

students.each do |a|
     Student.find_or_create_by_id_number(:id_number => a['id_number'], :username => a['username'], :first_name => a['first_name'], :last_name => a['last_name'])
end

...そして、私の students.json は次のようになります...

 [
{"id_number": "00xx280","username": "jesxxne","first_name": "Jessie","last_name": "Lane","email": "jesxxane@xx.edu","phone_number": "602-321-6693","is_active": true ,"last_four": "1944" },
{"id_number": "11xx2","username": "jamxxacqua","first_name": "James","last_name": "Bevixxua","email": "jamesbxxacqua@xx.edu","phone_number": "828-400-5393","is_active": true ,"last_four": "5422" }
 ]

これで rake db:seed を実行してこのデータをインポートできます。幸運を!

于 2012-11-26T13:24:42.207 に答える