在jquery对话框中使用rails部分

前端之家收集整理的这篇文章主要介绍了在jquery对话框中使用rails部分前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试将部分插入到 jquery对话框中.对话框工作但没有部分..

这是我的代码

的application.js

$(document).ready(function(){
    $("#add_note").click(function(){
        $("#notes").html("<%= escape_javascript(render(:partial => @note)) %>").dialog({title: 'Basic Dialog'})
    })
})

我的看法

<div class="title">
        <span>Historique :</span>
        <span id="add_note">Ajouter une note</span>
      </div>

      <div id="notes">
      </div>

我的偏爱
在myview / _note.html.erb中

<div class="note">
    <%= form_for(@add_note) do |f| %>
        <dl>
          <dt>Type de note</dt>
          <dd><%= f.collection_select :note_type_id,NoteType.find(:all),:id,:label,:allow_blank => "Type" %></dd>
        </dl>
         <dl>
          <dt>Titre :</dt>
          <dd><%= f.text_field :title %></dd>
        </dl>
        <dl>
          <dt>Description :</dt>
          <dd><%= f.text_field :description %></dd>
        </dl>
        <%= f.hidden_field :project_id,:value => @project_id %>
        <%= f.hidden_field :organization_id,:value => @project.organization_id %>
        <%= f.hidden_field :user_create_id,:value => current_user.id %>
        <%= f.hidden_field :domain_id,:value => current_user.domain_id %>
        <%= f.hidden_field :created_at %>

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

如果您有线索,那将非常有帮助!
谢谢

法比恩

解决方法

application.js文件是静态JavaScript的地方.它不会传递给ERB以便对每个请求进行处理,因此您的<%= code%>从未运行过.如果您将浏览器指向/javascripts/application.js,您将看到我在说什么.

确保您能够很好地处理在Rails中处理请求的方式.您可能在这里遗漏了一些细节. application.js是一个存在于/ public / javascripts目录中的静态文件,因此它由Web服务器直接提供;当浏览器获取Rails时,Rails甚至不会被触及.就像你创建一个新的rails应用程序一样,你必须在raails可以处理routes.rb文件中的map.root之前删除/public/index.html文件.

你有几个不同的选择:

Here是一个较旧的Railscast剧集,但它似乎接近你正在寻找的.它使用名为javascripts_controller的控制器来生成动态javascripts.这不是一个非常精细的方法.

this episode中,Ryan用于为嵌套模型添加字段的方法可以根据您的需要进行调整.我已经使用过这种方法几次,效果很好.

推荐方法

您还可以通过ajax调用返回partial的html的操作,并将结果用于$(#notes).html(result).快速搜索rails jquery ajax提供了一些如何实现这一点的指南(Here是一个看似合理的指南). Here是另一个处理jQuery和Rails 2的Railscast剧集.我不建议在这一点上使用jRails,因为它已经过时了,正如剧集所提到的那样,它有点像Rails 2助手生成时切换到jQuery的目的突兀的JavaScript.

这是一种灵活的做事方式.您有一组用于调用远程方法的通用静态JavaScript.在单个控制器方法中,您可以respond_to这些ajax调用并返回带有动态数据,html或JSON的JavaScript.

在jQuery api的this section中列出了jQuery中查看ajax的方法. $.ajax $.post和$.get是主要的.

对于您的示例,$.get将是一个很好的起点.以下是api文档中的一个示例:

$.get('ajax/test.html',function(data) {
  $('.result').html(data);
  alert('Load was performed.');
});

Here是关于Rails 3如何处理不引人注目的JavaScript以及HTML5自定义属性的Railscast.您可以在Rails 2中模仿这种方法,但标准辅助方法不会为您生成数据远程,数据方法,数据禁用或其他数据*属性.你可以在Rails 3 ujs的jQuery version中看到它最像我之前提到的方法,其中使用$.ajax调用控制器方法,并根据dataType(默认情况下为’script’)处理响应.

猜你在找的jQuery相关文章