1
我有新表的遷移覆蓋:的Rails:遷移默認值不能被創建方法
class CreateContentCategories < ActiveRecord::Migration
def change
create_table :content_categories do |t|
t.string :title, default: '', null: false
t.timestamps null: false
end
end
end
當我嘗試create
或find_or_create_by
新記錄的選項:
def self.assign_titles_to_app(titles, app)
# somewhere inside (class scope)
title = 'movies'
content_category = find_by_title(title) || create(title: title)
puts "title: #{title} category: #{content_category.inspect}"
活動記錄不使用我的標題
title: movies category: #<ContentCategory id: 1050, title: "", created_at: "2015-06-25 15:42:57", updated_at: "2015-06-25 15:42:57">
的結果相同210:
title = 'movies'
content_category = find_or_create_by(title: title)
title: movies category: #<ContentCategory id: 1062, title: "", created_at: "2015-06-25 15:45:25", updated_at: "2015-06-25 15:45:25">
文檔說:
:default - The column's default value. Use nil for NULL.
到底哪裏出問題了?如何解決它?
信息:
- 軌4.2.1
- 的ActiveRecord 4.2.1
- 紅寶石2.2.2
更新:我忘了attr_accessible:
class ContentCategory < ActiveRecord::Base
# attr_accessible :title <- I forgot to add this line, oh
end
在哪個上下文中調用方法find_or_create_by或create?你不應該'ContentCateogry.create(title:title)'? –
@ArslanAli,在類範圍內 – gaussblurinc
您在模型中的'after_save'或'after_create'中是否有任何操作?因爲顯然,你的代碼沒有問題。 –