如何在rails options_from_collection_for_select中显示html

时间:2015-08-14 02:45:24

标签: ruby-on-rails redirect drop-down-menu

我使用rails options_from_collection_for_select进行选择。

options_from_collection_for_select(@tenants, :id, :tenant_text_value, current_tenant.try(:id))

def tenant_text_value
  "<a href='http://www.google.com'>google</a>".html_safe
end

我想要<option value="215"><a href='http://www.google.com'>google</option>,当我点击a时,我会转到Google。

但是,我得到<option value="215">Google</option>

如果我使用"<a href='http://www.google.com'>google</a>".to_s,我会获得<option value="215"><a href='http://www.google.com'>google</a></option>。只是一个文本,而不是一个链接。

我该怎么办?

2 个答案:

答案 0 :(得分:0)

我想我知道你想做什么,而你对自己想要做的事情存在缺陷。

我认为你想要做的是当某人选择要去某个页面的东西时

预期输出

<select id="abc">
    <option value="http://www.google.com">Google</option>
    <option value="http://www.yahoo.com">Yahoo</option>
    <option value="http://www.google.com">Bing</option>
</select>

$("#abc").change(function() {
    window.location.href = $(this).val();
});

滑轨

<%= 
  select_tag "abc", 
  options_from_collection_for_select(@tenants, @tenant.url, @tenant.name", @tenant.id) 
%>

我希望这可以帮助你

快乐黑客

答案 1 :(得分:0)

FreshUrl.prototype.allReadyCallback = function() {
    return window.history.replaceState({ turbolinks: true }, "", FreshUrl.cleanUrl());
};

<%= select_tag '<some_id>', options_from_collection_for_select(@tenants, :id, :tenant_text_value, current_tenant.try(:id)),:onchange => "window.location.href(this.value);" %>