Hello StackOverflow用户,
我目前正在创建一个搜索表单,
我希望有一个collection_select,其中包含可用的书籍清单。
用户获得了书籍,并且连接表正在链接他们
2个型号:User / Book
联接表:Book_User
和双方有很多关系
用户模型:
has_many :games, :through => :book_users
has_many :book_users
accepts_nested_attributes_for :books
书籍模型 has_many:users,:through => :book_users has_many:book_users accepts_nested_attributes_for:users
表单正在使用Text_field_tag标准字段,结果正确(我需要book_name才能使其正常工作):
<%= form_tag search_path, :class => "webdesigntuts-workshop", method: :get do %>
....
<%= label :book_name, "" %>
<%# text_field_tag :book_name, params[:book_name], placeholder: 'books' %>
<%= collection_select(:book, :book_name, Book.all, :id, :name, prompt: true) %>
<%= submit_tag "Search" %>
<% end %>
collection_Select显示书籍列表,但是当我选择书籍名称并单击提交按钮时,请求中不会考虑该书籍。我也尝试了:selected => params[book_name]
选项。
集合选择是否正确写入?
我想我应该做一个f.collection_select,我在一个表单中,但我努力与属性。 我希望有人可以在那方面帮助我:)
非常感谢,
马丁
答案 0 :(得分:0)
您必须将book_id
传递给选定而非book_name
。试试吧:
<% book = Book.find_by name: params[:book_name] %>
<%# text_field_tag :book_name, params[:book_name], placeholder: 'books' %>
<%= collection_select(:book, :book_name, Book.all, :id, :name, {selected: book.try(:id)}, prompt: true) %>