我有一个像 Routine 和 RoutineContent 这样的模型,用于
在 Routine.rb中进行本地化
Class Routine < ActiveRecord::Base
has_many :routine_contents, dependent: :destroy
accepts_nested_attributes_for :routine_contents, reject_if: proc {|attributes| attributes['title'].empty?}
end
并在 RoutinesContent
class RoutineContent < ActiveRecord::Base
belongs_to :routine
validates_presence_of :title
end
在新的 Routine 动作中,我为语言添加了 RoutineConten 字段。如果一个对象中的标题为空,则该对象将被拒绝。
当我去编辑动作时,我这样做
def set_routine_contents
contents = @routine.routine_contents.group_by {|content| content.lang}
if contents['ru'].nil?
@routine.routine_contents << RoutineContent.new(lang: 'ru')
end
if contents['en'].nil?
@routine.routine_contents << RoutineContent.new(lang: 'en')
end
end
在此 Rails INSERT INTO 表中的 emty 对象之后结束,为什么?我怎样才能禁用它?谢谢