如何从select标签中获取id作为params?

时间:2016-07-04 08:13:28

标签: jquery ruby-on-rails ruby

我对这个参数如何工作有点困惑。例如,我尝试在索引页面中创建具有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`?

提前致谢!

1 个答案:

答案 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>

我假设传统的代码,路径和其他东西可能会改变。根据您的需求进行调整。希望这会有所帮助。