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 %>
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 %>