如何使下拉菜单中的每个选项都成为带有关联simple_form调用的链接



我有这个表单使用simple_form插件:

<%= simple_form_for([@video, @video.comments.new], :remote => true) do |f| %>
  <%= f.association :comment_title, :collection => @video.comment_titles, :label => "Comment Title:", :include_blank => false %>
  <%= f.input :body, :label => false, :placeholder => "Post a comment." %>
  <%= f.button :submit, :value => "Post" %>
<% end %>

创建一个下拉列表,如下所示:

<%= f.association :comment_title, :collection => @video.comment_titles, :label => "Comment Title:", :include_blank => false %>

我的问题是如何修改这段代码,使每个下拉项都是每个comment_title的单独显示视图的链接?

更新

下面是由第一个答案生成的html代码:

<select class="select optional" id="comment_comment_title_id" name="comment[comment_title_id]">
    <option value="&lt;a href=" comment_titles="" 224"="">#&lt;CommentTitle:0x10353b890&gt;"&gt;#&lt;CommentTitle:0x10353b890&gt;</option>
    <option value="&lt;a href=" comment_titles="" 225"="">#&lt;CommentTitle:0x1035296e0&gt;"&gt;#&lt;CommentTitle:0x1035296e0&gt;</option>
    <option value="&lt;a href=" comment_titles="" 226"="">#&lt;CommentTitle:0x1035295a0&gt;"&gt;#&lt;CommentTitle:0x1035295a0&gt;</option>    
</select>

我真的弄明白了。下面是ruby代码:

<%= f.association :comment_title, :collection => @video.comment_titles.map {|ct| [ct.title, comment_title_path(ct)] }, :label => "Comment Title:", :include_blank => false %>

传递数组中的第一个元素作为文本,第二个元素作为值。然后使用以下jQuery代码:

$("select").change(function () {
      var url = $("select option:selected").val();
      $(location).attr("href",url);
});

相当简单。

try :collection => @video.comment_titles.map {|ct| [ct, (link_to ct, comment_title_path(ct))] }

相关内容

  • 没有找到相关文章

最新更新