【发布时间】:2011-02-16 08:15:57
【问题描述】:
你能告诉我 - 如何使用方法 create_translation_table! globalize2 的附加选项,例如 :null => false, :default => "abc" ???
【问题讨论】:
标签: ruby-on-rails ruby globalize2
你能告诉我 - 如何使用方法 create_translation_table! globalize2 的附加选项,例如 :null => false, :default => "abc" ???
【问题讨论】:
标签: ruby-on-rails ruby globalize2
尝试以下内容
Post.create_translation_table! :title => :string, :text => :text, {:null=>false, :default=>"abc"}
【讨论】:
这是当前版本globalize2中的方法定义:
def create_translation_table!(fields)
translated_attribute_names.each do |f|
raise MigrationMissingTranslatedField, "Missing translated field #{f}" unless fields[f]
end
fields.each do |name, type|
if translated_attribute_names.include?(name) && ![:string, :text].include?(type)
raise BadMigrationFieldType, "Bad field type for #{name}, should be :string or :text"
end
end
self.connection.create_table(translation_table_name) do |t|
t.references table_name.sub(/^#{table_name_prefix}/, "").singularize
t.string :locale
fields.each do |name, type|
t.column name, type
end
t.timestamps
end
self.connection.add_index(
translation_table_name,
"#{table_name.sub(/^#{table_name_prefix}/, "").singularize}_id",
:name => translation_index_name
)
end
如您所见,t.column 声明中没有传递第三个参数。因此 globalize2 不会在没有补丁的情况下支持这个。
我的建议是手动创建迁移。
【讨论】: