ruby-on-rails – 如何使用Globalize3制作本地化的Paperclip附件
发布时间:2020-12-17 02:34:02 所属栏目:百科 来源:网络整理
导读:我有一个项目使用Paperclip gem作为附件,使用Globalize3进行属性翻译.记录需要为每个区域设置具有不同的附件. 我虽然将Paperclip属性移动到转换表,但这可能有效,但我不认为当Paperclip需要删除附件时这会起作用. 实现类似目标的最佳方法是什么? 更新:要清
我有一个项目使用Paperclip gem作为附件,使用Globalize3进行属性翻译.记录需要为每个区域设置具有不同的附件.
我虽然将Paperclip属性移动到转换表,但这可能有效,但我不认为当Paperclip需要删除附件时这会起作用. 实现类似目标的最佳方法是什么? 更新:要清楚,我想要这个,因为我的客户想要为每个区域设置上传不同的图像. 解决方法
不幸的是,我没有找到使用Globalize3的方法.从理论上讲,我可以为图像添加一个单独的模型,并将image_id添加到已翻译列的列表中(有类似于MainModel – > Translation – >
Image),但似乎Globalize在非字符串列中存在一些迁移问题.
我没有使用Globalize3,而是使用带有locale属性的单独Image模型和接受嵌套属性的主模型.有点像: class MainModel < ActiveRecord::Base has_many :main_model_images accepts_nested_attributes_for :main_model_images # return image for locale or any other as a fallback def localized_image(locale) promo_box_images.where(:locale => locale).first || promo_box_images.first end end class MainModelImage < ActiveRecord::Base belongs_to :main_model has_attached_file :image validates :locale,:presence => true,:uniqueness => { :scope => :main_model_id } end 棘手的部分是获取表单只接受一个图像的嵌套属性,而不是has_many关系中的所有图像. =f.fields_for :main_model_images,@main_model.image_for_locale(I18n.locale) do |f_image| =f_image.hidden_field :locale =f_image.label :image (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |