根据 collection_select 下拉菜单创建记录

create record based on collection_select dropdown

我正在尝试根据下拉选择创建播放列表记录。一旦功能正常,我将把它放在 bootstrap 分开的下拉列表中。现在我有一个下拉菜单和一个 link。 link 执行此操作,使用点击视频的值创建一个新的播放列表对象,一切都是 PORO,直到添加为播放列表对象,视频作为视频对象保存到数据库中。我想要做的是,如果您想将视频添加为播放列表对象,您会看到相关播放列表名称的列表。当您单击名称时,它会执行与 link_to 相同的操作,但会使用名称参数来创建新记录。谢谢你的帮助。 PS。如果您有实施 bootstrap 的技巧,那也很有帮助 :D

<%= form_tag :playlists, {action: 'create'} do %>
        <%= collection_select :playlist, :name, current_user.playlists, :id, :name, class: 'dropdown-item'  %>
        <%= link_to 'Create Playlist', new_playlist_path(etag: video.etag, video_id: video.video_id, user_id: current_user.id,
                                                         img_high: video.img_high, img_default: video.img_default,
                                                         title: video.title, description: video.description), class: 'dropdown-item' %>
<% end %>

基本上,我想做的是...能够做 link_to 正在做的事情,但也可以使用播放列表名称

绑定到 select 的 onchange 事件并触发它的表单提交。

<%= collection_select :playlist, :name, current_user.playlists, :id, :name, class: 'dropdown-item', onchange: "this.form.submit()" %>

这是一个例子:

<form action="https://google.com/">
  <select name="q" onchange="this.form.submit()">
    <option value="abc">Option 1</option>
    <option value="123">Option 2</option>
  </select>
</form>

终于能够传递参数,我仍然必须使用按钮,因为无法使 onchange: 工作。

      <%= form_tag :playlists, {action: 'create'} do %>
          <%= hidden_field_tag :etag, video.etag %>
          <%= hidden_field_tag :video_id, video.video_id %>
          <%= hidden_field_tag :img_high, video.img_high%>
          <%= hidden_field_tag :img_default, video.img_default %>
          <%= hidden_field_tag :title, video.title %>
          <%= hidden_field_tag :published_at, video.published_at %>
          <%= hidden_field_tag :description, video.description %>
          <%= hidden_field_tag :user_id, current_user.id %>

        <%= collection_select :playlist, :name, current_user.playlists, :name, :name,  {class: 'dropdown-item', onsubmit: 'this.form.submit()'}  %>
        <%= submit_tag 'Add',  method: 'post' %>

不知道我可以在那里使用 hidden_field_tag :P