如何自定义formtastic属性:as =>:check_boxes

时间:2011-07-26 19:46:56

标签: ruby-on-rails-3 formtastic form-for customization

我的问题是我尝试自定义形式视图。但在我详细介绍之前,我会解释一下我的模型。

我有两个与n:m关系商店和类别

的对象

商店模型看起来像这样:

has_many :shop_categories, :class_name => "ShopCategory", :foreign_key => "shop_id"
has_many :categories, :through => :shop_categories, :source => :categories

类别模型看起来像这样:

has_many :shop_categories, :class_name => "ShopCategory", :foreign_key => "category_id"
has_many :shops, :through => :shop_categories, :source => :shops

当然,我的m到n表看起来像

belongs_to :shops, :class_name => "Shop", :foreign_key => "shop_id"
belongs_to :categories, :class_name => "Category", :foreign_key => "category_id"

validates :shop_id, :presence => true
validates :category_id, :presence => true

这很好用,我的商店视图中的以下命令将列出复选框中类别的所有元素:

<%= f.input :categories, :as => :check_boxes, :id => 'shop_categories' %>

这是我的问题: 在类别中,我有类别和图片的名称。现在我想显示选择框旁边的图片。

我也尝试使用<% f.fields_for :categories do |category| %>但是rails不会遍历所有类别元素。

有没有办法用自动检查对象处理所有Category元素?

如果您需要更多信息,我很乐意提供您理解问题所需的一切。 谢谢你的提示。

1 个答案:

答案 0 :(得分:0)

尝试覆盖自定义输入:

# app/inputs/collection_check_boxes_input.rb
class CollectionCheckBoxesInput < SimpleForm::Inputs::CollectionCheckBoxesInput
  # [...]
end