首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在jquery对话框中使用rails部分

在jquery对话框中使用rails部分
EN

Stack Overflow用户
提问于 2010-06-23 07:43:16
回答 2查看 6.2K关注 0票数 8

我试图在jquery对话框中插入一个分部。对话框正在工作,但没有部分。

这是我的代码:

application.js

代码语言:javascript
运行
复制
$(document).ready(function(){
    $("#add_note").click(function(){
        $("#notes").html("<%= escape_javascript(render(:partial => @note)) %>").dialog({title: 'Basic Dialog'})
    })
})

我的观点

代码语言:javascript
运行
复制
<div class="title">
        <span>Historique :</span>
        <span id="add_note">Ajouter une note</span>
      </div>

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

在myview/_Not.html.erb中我的部分

代码语言:javascript
运行
复制
<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 %>

如果你有线索的话,那会很有帮助的!谢谢

法比安

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-06-23 08:05:04

application.js文件是静态JavaScript的位置。它不会传递给ERB对每个请求进行处理,因此您的<%= code %>永远不会运行。如果你把浏览器指向/javascripts/application.js,你就会明白我在说什么。

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

你有几种不同的选择:

这里是一个较老的铁路插曲,但它似乎接近你正在寻找的东西。它使用一个名为javascripts_controller的控制器生成动态javascripts。这不是一个非常细粒度的方法。

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

推荐方法

您还可以通过ajax调用一个返回部分的html的动作,并将结果使用到$(#notes).html(result)。对rails jquery ajax的快速搜索提供了一些关于如何实现这一点的指南(这里似乎是合理的)。这里是处理jQuery和Rails 2的另一集。我不建议在这一点上使用jRails,因为它已经相当过时了,正如这一集所提到的那样,当Rails 2帮助程序生成突出的JavaScript时,它的目的有点失败。

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

jQuery中用于ajax的方法在jQuery api的本节中列出。$.ajax$.post$.get是主要研究对象。

就您的例子而言,$.get将是一个很好的起点。下面是api文档中的一个示例:

代码语言:javascript
运行
复制
$.get('ajax/test.html', function(data) {
  $('.result').html(data);
  alert('Load was performed.');
});

这里是Rails 3如何处理非突出的JavaScript以及HTML5自定义属性的Railscast。您可以在Rails 2中模拟这种方法,但是标准的助手方法不会为您生成data-remotedata-methoddata-disable-with或其他data-*属性。您可以在Rails 3 ujs的jQuery版本中看到,它最像前面提到的方法,其中使用$.ajax调用控制器方法,并根据dataType (默认情况下是“脚本”)以不同的方式处理响应。

票数 10
EN

Stack Overflow用户

发布于 2011-02-28 05:32:16

在我看了Rails转换和文档之后,我做的最好的方法是遵循这一点,看看现实世界的例子,并将其调整到我需要的地方。因此,如果您确实使用Ajax路由( Awgy所建议的)并想要更多的示例,那么除了InfectiouSoul的链接(来自同一个站点)之外,这里还有一个链接,这个链接显示了一个使用ajax请求的对话框示例。

http://jenwendling.com/fancy-forgot-password-with-jqueryui-and-rails/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3099803

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档