Fab*_*ien 8 jquery ruby-on-rails ruby-on-rails-3
我正在尝试将部分插入到jquery对话框中.对话框正在运行,但没有部分..
这是我的代码:
的application.js
$(document).ready(function(){
$("#add_note").click(function(){
$("#notes").html("<%= escape_javascript(render(:partial => @note)) %>").dialog({title: 'Basic Dialog'})
})
})
Run Code Online (Sandbox Code Playgroud)
我的看法
<div class="title">
<span>Historique :</span>
<span id="add_note">Ajouter une note</span>
</div>
<div id="notes">
</div>
Run Code Online (Sandbox Code Playgroud)
我 在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 %>
Run Code Online (Sandbox Code Playgroud)
如果您有线索,那将非常有帮助!谢谢
法比恩
Awg*_*wgy 10
该application.js文件是静态JavaScript的位置.它不会传递给ERB以便对每个请求进行处理,因此您<%= code %>永远不会运行.如果您将浏览器指向/javascripts/application.js您将看到我正在谈论的内容.
确保您能够很好地处理如何在Rails中处理请求.您可能在这里遗漏了一些细节. application.js是一个存在于/public/javascripts目录中的静态文件,因此它由Web服务器直接提供; 当浏览器获取Rails时,Rails甚至不会被触及.就像你创建一个新的rails应用程序一样,你必须/public/index.html在Rails处理你map.root的routes.rb文件之前擦除文件.
您有几个不同的选择:
这是一个较旧的Railscast剧集,但它似乎接近你正在寻找的.它使用一个名为javascripts_controller生成动态javascripts 的控制器.这不是一个非常精细的方法.
在本集中,Ryan用于为嵌套模型添加字段的方法可以根据您的需要进行调整.我已经使用过这种方法几次,效果很好.
您还可以通过ajax调用返回部分html的操作,并使用结果$(#notes).html(result).快速搜索rails jquery ajax提供了一些如何实现这一点的指南(这是一个看似合理的指南). 这是另一个处理jQuery和Rails 2的Railscast剧集.我不建议在这一点上使用jRails,因为它已经过时了,正如剧集中提到的那样,它有点像Rails 2助手生成时切换到jQuery的目的突兀的JavaScript.
这是一种灵活的做事方式.您有一组用于调用远程方法的通用静态JavaScript.在单个控制器方法中,您可以响应这些ajax调用并使用动态数据,html或JSON返回JavaScript.
在jQuery api的这一节中列出了jQuery中查看ajax的方法. $.ajax $.post并且$.get是主要的.
举个例子,这$.get将是一个很好的起点.以下是api文档中的一个示例:
$.get('ajax/test.html', function(data) {
$('.result').html(data);
alert('Load was performed.');
});
Run Code Online (Sandbox Code Playgroud)
这是一个关于Rails 3如何处理不引人注目的JavaScript以及HTML5自定义属性的Railscast.你可以模仿这种方法在轨道2,但标准的辅助方法不会产生data-remote,data-method,data-disable-with,或其他data-*适合你的属性.您可以在Rails 3 ujs 的jQuery版本中看到,它最像我之前提到的调用控制器方法的方法,$.ajax并根据dataType(默认情况下为'script')处理响应.