如何显示在Rails中选择的多个选项

时间:2014-10-06 17:41:31

标签: ruby-on-rails ruby

我得到了这个模型:

class Book < ActiveRecord::Base
    mount_uploader :image, ImageUploader
    belongs_to :editor
    belongs_to :catalog
    has_many :catalogs
end

_form.html.erb:

<div class="field">
    <%= f.label :catalog_id %><br>
    <%= f.collection_select(:catalog_id, @catalogs, :id, :ano, {:prompt => "Segure CTRL para seleção múltipla"}, {:multiple => true}) %>
</div>

控制器:

params.require(:book).permit(:title, :format, :npag, :isbn, :sinopse, :image, :catalog_ids => [])

我可以创建新书但是在show.html.erb中没有出现所选的itens,出了什么问题?

我没有改变节目:

<%= @book.catalog %>

2 个答案:

答案 0 :(得分:0)

您应该访问每个对象以打印其内容:

<% @book.catalogs.each do |c| %>
<%= c.year %>
<% end %>

答案 1 :(得分:0)

<%= f.collection_select(:catalog_id, @catalogs, :id, :ano, {:prompt => "Segure CTRL para seleção múltipla", :selected => @catalogs.pluck(:id)}, {:multiple => true}) %>

您必须传递所选的选项... .pluck将返回一系列目录中的ID ...这取决于您的节目(并编辑该问题)@catalogs = @book.catalogs的方法