Formtastic select list

astropanic picture astropanic · Oct 28, 2009 · Viewed 9.3k times · Source
<% 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 %>

Product belongs to Shop_category, Shop_category belongs to Shop.

How to change the line :

<%= f.input :shop_category %>

To show only shop_categories that belongs to Shop with id for example 15 instead of showing all shop_categories in the select box ?

Answer

Damien MATHIEU picture Damien MATHIEU · Oct 28, 2009

There's a :collection option for the select input.

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

So you can, by providing a Hash to that collection attribute, display the categories you need, with the required conditions.