私はすべてを慎重に計画し、ローカルでテストしましたが、デプロイした後、herokuでアプリをクラッシュさせた多くの役に立たないレコードが作成された可能性があります。
私の目的は、多くのモデルを1つのトピックモデルに統合することなので、Herokuコンソールで以下のスクリプトを使用しました(最初は1つのレコードをテストする必要がありました)。
> Question.find_each do |q|
* @qt=q.title
> @qd=q.description
> @q="Question"
> @ca=q.created_at
> @ui=q.user.id
> @uvt=q.user_votes_total
> Topic.create!({:title => @qt, :description => [@qd], :kind => @q, :created_at=>@ca, :user_id=>@ui, :user_votes_total=>@uvt })
> end
Herokuはこれを返します:
Question Load (1.8ms) SELECT "questions".* FROM "questions" WHERE ("questions"."id" >= 0) ORDER BY "questions"."id" ASC LIMIT 1000
User Load (6.5ms) SELECT "users".* FROM "users" WHERE "users"."id" = 3331 ORDER BY users.created_at DESC LIMIT 1
そして、このDOH !:
WARNING: Can't mass-assign protected attributes: title, description, kind, created_at, user_id, user_votes_total
私のトピックモデルは次のようになります:
class Topic < ActiveRecord::Base
attr_accessible :description, :title, :kind, :user_id, :tag_list,
:subject, :image_attributes, :tags_attributes, :created_at,
:user_votes_total
validates :title, :presence => true,
:length => { :minimum => 5 }
validates :description, :presence => true
validates :kind, :presence => true
belongs_to :user
has_many :adds
default_scope order: 'topics.created_at DESC'
votable_by :users
acts_as_taggable
has_one :image, :as => :parent, :dependent => :destroy
accepts_nested_attributes_for :image, :allow_destroy => true
after_create do
self.create_image unless image
end
has_many :comments, :as => :commentable, :dependent => :destroy
include PgSearch
pg_search_scope :search, against: [:title, :description, :kind],
using: {tsearch: {dictionary: "english"}}
end
関連情報を検索しましたが、Herokuがうまく機能していない理由がわかりません。誰かがこの問題に遭遇しましたか?