Rails 如何搜索下拉选择

Rails how to search dropdown selection

Rails初学者

我在数据库中有一堆书。我可以通过将书名附加到我的 url 来访问每本书的信息。 (localhost/3000:books/booktitle1 ... localhost/3000:books/booktitle2 ... 等等)

我有一个下拉菜单,显示数据库中的所有图书。

  <%=select_tag "book", options_from_collection_for_select(@books, "book_name", "book_name")%>

如何才能使当我在下拉菜单上创建 selection 时,网页重定向到该书的信息?

意思是...select下拉菜单中的“booktitle1”,然后我的浏览器被发送到localhost/3000:books/booktitle1.

*编辑

它不必完全搜索表格 selection,select阅读本书然后单击“开始”按钮也完全可以。只是不确定如何实现它。

提交表单后,您需要获取所选书籍的模型对象。然后,获取它的 url 路径。最后,重定向到该路径。

book = Book.find(params[:books])
path = url_for(book)
redirect_to path

params[:books] returns 书的 ID,所以我可以使用 find 查询它。在您的例子中,您将 option 属性的 value 设置为书名。考虑将其更改为 id 或使用 find_by 来查询模型实例。我使用的标签是:

<%= select_tag 'books', options_from_collection_for_select(@books, 'id', 'title') %>

我的表单如下所示:

<%= form_with url: '/books', method: :post do |f| %>
  <%= select_tag 'books', options_from_collection_for_select(@books, 'id', 'title') %>
  <%= f.submit %>
<% end %>