0

这是我的小组观点的一部分。我有一个用对象集合渲染的部分列表:

<div id="container">
  <ul>
    <li id="form"></li>
    <li id="partials">
      <%= render :partial => 'groups/partial-list-row', :collection => @allpartials, :as => :f %>
    </li>
  </ul>
</div>

在 ID 为“form”的列表项中,有一个 ruby​​ on rails 表单,它是一个 form_for @newpartial,它在 Partial 控制器中定义为 @newpartial = Partial.new()。我已经成功地使用 jquery 在单击“新建部分”按钮时切换两个列表项的显示和隐藏,并且在完成完成的表单后,肯定会创建一个新的部分对象。我在这里寻找的是在表单提交后重新出现的部分集合,包括新创建的部分对象。做这个的最好方式是什么?我的表单位于 ID 为“form”的列表项内,如下所示:

<%= form_for @newpartial, :html => {:multipart => true, :class => 'custom'}, remote: true do |f| %>
  <% if @newpartial.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@newpartial.errors.count, 'error') %> prohibited this partial from being saved:</h2>
      <ul>
        <% @newpartial.errors.full_messages.each do |msg| %>
          <li><%= msg %></li>
        <% end %>
      </ul>
    </div>
  <% end %>
  <%= render :partial => 'partials/form-partial', :locals => { :f => f } %>
  <div class="actions">
    <%= f.submit 'Launch', :class => 'large success button radius new_browser_tab' %>
    <a class="cancel_campaign_new">Cancel</a>
  </div>
<% end %>

我还成功地创建了一个在 DOM 完全加载后绑定到此表单的“ajax:success”事件的函数。我只是不知道这是否是正确的方法,如果是,我不知道这个事件处理程序的主体应该由什么组成。我已经提出了与同一问题相关的其他问题(我已经有一段时间没有找到解决方案了)。如果您需要其他上下文,请参考以下问题:

4

1 回答 1

0

我没有意识到的是,remote: true在表单上应用表明控制器的操作方法将响应模型“action”.js.erb 文件。在创建该文件并执行我一直想要的 jquery 之后,我能够修复一些扭结并使该部分正常工作。

将 jquery 呈现在客户端 javascript 中的新部分与您的“action”.js.erb 文件之间的区别在于“action”.js.erb 文件能够向服务器发出所需的请求,而您的客户端javascript不是。

有人可以阅读此内容并让我知道上述陈述是否准确吗?我真的很想为遇到此问题的任何人提供尽可能准确的答案...

CodeSchool.com上有一些非常好的教程,其中有一些免费课程可供学习,包括视频讲座、幻灯片和练习,我曾经最终在这方面给了我足够的指导。另外值得一提的是,如果您打算快速学习这些东西并计划花费大量时间来开发您的 Web 开发能力,那么每月支付 20 美元来访问所有课程是非常值得的(您可以随时取消,所以学习你需要学习的东西并继续前进!)。

于 2013-04-04T18:50:53.917 回答