データをJSONファイルに書き込むPinterest Rubyクローラー(Railsではありません)があります。ピンの ActiveRecord を作成しました。ファイルから mysql にデータをロードするメソッドも作成しました。しかし、私の load_pins メソッドはデータをデータベースにロードしませんが、空の行を作成します。デバッガーを入れて、ピンテーブルにデータを手動でロードしようとしたので、たとえば
pin = Pin.first
pin.field_id = 1
pin.user_id = 1
pin.save!
そして、それはtrueを返し、私がそうpin.user_id
すると1を返しますが、データベースには何も保存されません。または、ピンを印刷しようとすると、すべてが空になります。
ピン モデル:
require_relative '../database_configuration'
class Pin < ActiveRecord::Base
attr_accessor :field_id, :user_id, :board_id, :img_url, :is_repin, :is_video, :source, :link, :description, :user_name
attr_accessible :field_id, :user_id, :board_id, :img_url, :is_repin, :is_video, :source, :link, :description, :user_name
def to_json
{
field_id: field_id,
user_id: user_id,
user_name: user_name,
board_id: board_id,
img_url: img_url,
is_repin: is_repin,
is_video: is_video,
source: source,
link: link,
description: description,
}
end
end
私の Load_pins メソッド
def load_pins
pins = JSON.parse(File.read('pins.json'))
Pin.create!(pins)
end
Mysql
mysql> select * from pins;
+----+----------+---------+----------+---------+----------+----------+--------+------+-------------+-----------+
| id | field_id | user_id | board_id | img_url | is_repin | is_video | source | link | description | user_name |
+----+----------+---------+----------+---------+----------+----------+--------+------+-------------+-----------+
| 1 | NULL | NULL | NULL | NULL | 0 | 0 | NULL | NULL | NULL | NULL |
| 2 | NULL | NULL | NULL | NULL | 0 | 0 | NULL | NULL | NULL | NULL |
なぜこれが起こっているのですか?Rails の外部で ActiveRecord を使用する場合、何か不足していますか?