2009-10-28 1 views
4
<% semantic_form_for(@product, :html => {:multipart => true}) do |f| %> 

    <% f.inputs do %> 
     <%= f.input :name %> 
     <%= f.input :price %> 
     <%= f.input :pno %> 
     <%= f.input :description %> 
     <%= f.input :shop_category %> 
    <% end %> 
<% end %> 

Продукт принадлежит Shop_kategory, Shop_category принадлежит Shop.Formtastic select list

Как изменить строку:

<%= f.input :shop_category %> 

Чтобы показать только shop_categories, который принадлежит магазин с идентификатором, например, 15 вместо того чтобы показывать все shop_categories в поле выбора?

ответ

13

Есть опция :collection для ввода ввода.

<%= form.input :shop_category, :collection => @shop.ShopCategories %> 

Таким образом, вы можете, предоставив атрибут Hash для этой коллекции, отобразить категории, в которых вы нуждаетесь, с требуемыми условиями.

1

Также, если вы установили shop_category в контроллер, он будет выбран в качестве значения по умолчанию.

+2

Также вы могли бы (и должны?) Сделать это в модели: 'after_initialize {self.attribute_name || = defaul_value}'. – jibiel