我对这个参数如何工作有点困惑。例如,我尝试在索引页面中创建具有select标记的用户集合,如下所示:
用户/ index.html.erb
<%= select_tag "user", options_from_collection_for_select(@users, "id", "name")%>
<%= link_to "new", new_user_book_path(params[:user]) %>
我有一个用户列表的下拉列表,我有一个链接到书籍/新页面的按钮。如何将我在下拉列表中选择的user id
传递给'new_user_book_path`?
提前致谢!
答案 0 :(得分:1)
你必须为它写一些javascript。
f(1,2,3)
转换为普通html时会出现类似的内容
<%= select_tag "user", options_from_collection_for_select(@users, "id", "name"), {id: "select_users" } %>
<!-- If you don't pass id attribute, the default id will be 'user' by convention -->
<%= link_to "New", new_user_book_path(@users.first.id), id: "btn_book", data: { book_path: new_user_book_path } %>
请注意,我们已经为第一个用户设置了路径,因此如果从选择下拉列表中未选择任何内容,则第一个用户将被传递给params。现在我们将编写一些脚本来更新所选用户的路径。
<select name="user" id="select_users">
<option value="1">User1</option>
<option value="2">User2</option>
</select>
<a id="btn_book" data-book-path="book/new" href="books/new/1">New</a>
我假设传统的代码,路径和其他东西可能会改变。根据您的需求进行调整。希望这会有所帮助。