0

我正在开发一个使用 select 2 gem 的 rails 应用程序。我已经选择 2 工作,但我需要能够将正确的数据输入到函数的数据部分,为此我想迭代一个名为 MagazineStation 的对象。我尝试了很多不同的东西,但我无法让它工作。因此,在函数的数据部分,我想使用 ruby​​ 遍历 MagazineStation 对象,输入 id 和名称。

<head>
  <script>
    $(document).ready(function() { 
      $("#e11").select2({
        placeholder: "Select a Station",
        allowClear: true,
        multiple: true,
        data: [{id: 0, text: 'story'},{id: 1, text: 'bug'},{id: 2, text: 'task'}]
      });
    });
  </script>
</head>

<input id="e11">
4

2 回答 2

2

您可以使用 ERB 将 ruby​​ 输出到您的 javascript 中,例如:

<%= MagazineStation.all.map { |ms| { id: ms.id, text: ms.name } }.to_json %>

.to_json部分是将看起来像数组的字符串输出到模板中的关键(并且以对 javascript 友好的方式)。

但是您确实需要确保将其放入页面内的脚本中。因此,通过使用例如collection_select帮助器创建常规选择然后在页面加载时将该数据转换为 select2 元素可能更容易开始。

于 2014-05-19T19:03:31.233 回答
0

你可以这样做。迭代 .erb 文件中的 Ruby 对象。

data: [                
 <% @Magzinestation.each do |t|%>    
    {"<%=raw t[0] %>",<%=raw t[1]%>},
  <%end%>]

此脚本会将数据 [] 替换为 data[ {data 1}, {data 2}...]

于 2014-05-19T19:07:33.837 回答