ruby-on-rails – 活动管理员有一个多态形式
发布时间:2020-12-17 02:06:14 所属栏目:百科 来源:网络整理
导读:我正在尝试设置一个选择菜单,将 ImageGallery与产品相关联. ImageGallery是多态的,因为它在几个模型之间共享. Formtastic似乎对该怎么做非常困惑.它试图在产品模型上调用名为Galleryable的方法,这是我的多态关联的名称,_id(galleryable_id). 产品 class Prod
我正在尝试设置一个选择菜单,将
ImageGallery与产品相关联. ImageGallery是多态的,因为它在几个模型之间共享. Formtastic似乎对该怎么做非常困惑.它试图在产品模型上调用名为Galleryable的方法,这是我的多态关联的名称,_id(galleryable_id).
产品 class Product < ActiveRecord::Base has_one :image_gallery,as: :galleryable,dependent: :destroy accepts_nested_attributes_for :image_gallery,:allow_destroy => true end 画廊 class ImageGallery < ActiveRecord::Base belongs_to :galleryable,polymorphic: true validates :title,presence: true has_many :images,as: :imageable,dependent: :destroy accepts_nested_attributes_for :images,:allow_destroy => true,reject_if: lambda { |t| t['file'].nil? } end 活动管理员表单 form do |f| f.inputs "Details" do f.input :name f.input :category f.input :price f.input :purchase_path f.input :video_panels f.input :image_panels f.input :image_gallery,:as => :select,collection: ImageGallery.all,value_method: :id end f.inputs "Image",:for => [:image,f.object.image || Image.new] do |i| i.input :title i.input :file,:as => :file,required: false,:hint => i.template.image_tag(i.object.file.url(:thumb)) end f.actions end 我在模型上定义了galleryable_id,但这会尝试使用当然不存在的属性更新产品. 有没有人成功设置过这个? 谢谢, 科里 解决方法
我很惊讶没有人回答,因为这是一个非常有趣的场景.
你几乎得到了它但你在你的AA形式中错误地嵌套了你的关系.以下应该工作: form do |f| f.inputs "Details" do f.input :name f.input :category f.input :price f.input :purchase_path f.input :video_panels f.input :image_panels f.inputs "ImageGallery",:for => [:image_gallery,f.object.image_gallery || ImageGallery.new] do |gallery| gallery.has_many :images do |image| image.input :title image.input :file,:hint => image.template.image_tag(image.object.file.url(:thumb)) end end end f.actions end 这会将“ImageGallery”与您的产品联系起来. has_one关系不能直接传递给您的父模型(正如您尝试使用f.input:image_gallery). 希望它有帮助:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
热点阅读