繁体   English   中英

Neo4j在Rails中使用ActiveNode和Bootstrap Multiselect创建多个关系

[英]Neo4j create multiple relationships with ActiveNode and Bootstrap Multiselect in Rails

我正在玩Neo4j和Rails,并创建了一个应用程序,该应用程序使用ActiveNode创建新的节点和关系。 这是我当前的数据模型:

(company1)-[:RESEARCHING]->(market1)
(company2)-[:RESEARCHING]->(market2)

我有一个带有下拉菜单的公司页面,其中包含“ market1”和“ market2”。 创建公司时,可以选择“ market1”,然后在该公司与“ market1”之间创建新的关系。 如果更新公司,则可以在下拉列表中更改项目,它将删除旧的关系并创建一个新的关系。

我想做的就是将此下拉菜单连接到Bootstrap Multiselect,这样我就可以从下拉菜单中选择多个市场来立即创建多个关系。 像这样:

(market2)<-[:RESEARCHING]-(company1)-[:RESEARCHING]->(market1)

我已经弄清楚了大部分内容,但是Bootstrap菜单可以正常工作,只是它不会更新数据库。 我只是不知道在提交时添加关系的这段代码在哪里:

@company.market.try(:id)

(至少我认为是这样。)有关如何执行此操作的任何想法? 提前致谢!

这是我的代码:

<!-- Current working form. -->
<div class="field">
  <%= f.label :market %><br>
  <%= f.select "market", 
  options_from_collection_for_select(Market.all, "id", "name", @company.market.try(:id)) %> 
</div>

<div class="actions">
  <%= f.submit %>
</div>

<!-- The form I would like to create. -->
<form id="form1">
  <div style="padding:20px">
    <select id="market" multiple="multiple">
      <% @markets.each do |market| %>
        <option name="<%= market.name %>" value="<%= market.name %>"><%= market.name %></option>
      <% end %>
    </select><br><br>

  <div class="actions" id="submit" value="Submit">
    <%= f.submit %>
  </div>

  <script type="text/javascript">
    $(function() {
      $('#market').multiselect({
       includeSelectAllOption: true
      });
      $('#submit').click(function() {
      })
    });
  </script>
 </div>
</form>

请耐心options_from_collection_for_select ,我之前从未使用过options_from_collection_for_select 看起来只需要知道表单是否已经选择了该表单,因此我认为最好首先弄清楚该表单,然后对照该列表检查每个市场。 API文档看起来像我们可以提供的proc,所以也许是这样吗?

<% @selected_markets = @company.markets(:m).pluck('m.uuid') %>
<%= f.select "market", 
  options_from_collection_for_select(Market.all, "id", "name", proc { |market| @selected_markets.include?(market.uuid) }) %>

假设您在Company模型上有一个markets协会。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM