使用Simple_form的Collection_select进行类别选择

时间:2018-01-13 08:05:16

标签: ruby-on-rails ruby

我在我的数据库中的类别表中输入了类别名称。我想通过simple_form将产品分配到该类别。我无法通过并接受该类别。

这是我的选择..

<%= simple_form_for :pack, url: packs_path do |f| %>
  <div class="form-group">
    <%= f.collection_select :category, Category.all, :id, :name,prompt: "Select Category", class: "form-control center" %>
  </div>
  <%= f.submit "Add product to grid", class: "btn btn-success btn-block" %>
<% end %>

这是我的包控制器

def index
  @packs = Pack.includes(:category).group_by { |pack| pack.category.name }
  @categories = Category.all
end

我的协会如下;

类别模型:has_many :packs

包模型:belongs_to :category

2 个答案:

答案 0 :(得分:1)

以简单的形式,你必须使用它。

<%= f.input :category, collection: Category.all, label_method: :name, value_method: :id,label: "Category", include_blank: false, selected: @pack.category_id %>

答案 1 :(得分:1)

您可以使用SimpleForm快捷方式执行此操作:

f.association :category, prompt: "Select Category", input_html: { class: "form-control center" }

您似乎正在使用Bootstrap,您应该使用此命令集成SimpleFormBootstraprails generate simple_form:install --bootstrap

执行此操作后,您无需指定form-group, form-control, ....

之类的内容