环顾四周(很多)我已经挖掘了很多关于这个主题的帖子,但是我真的很困惑,因为这个问题似乎主要是在一段时间后(当变化发生时)被解决并且很少与事情如何匹配正在寻找今天。
所以,我正在尝试将Rails 2.1应用程序更新为3.2 - 并且遇到了已弃用的link_to_remote函数。我意识到它被link_to取代:remote =>是的,但这并没有真正回答我的问题。
我正在处理的应用程序正在使用大量的原型魔法来进行页面内渲染,如下所示:
在/acl/main.html.erb中:
<table width=95%>
<tr><td align=center valign=top width=30%> <!-- Employees List -->
<%= render(:partial => "employee_list") %>
</td><td align=center valign=top> <!-- Roles & Privileges List -->
<div id='roles' style="border: 1px solid black; background-color: #ddd;">
<% if @employee.blank? %>
<h4>Select employee to see access details.</h4>
<% elsif @show_uploads %>
<%= render :partial => 'employee_uploads' %>
<% else %>
<%= render :partial => 'employee_edit' %>
<% end %>
</div>
</td></tr>
然后,在acl / _employee_list.html.erb:
<span class="simple">
<table class="production_list">
<tr>
<th colspan=10>
Employees  
<% if @show_all %>
<%= link_to 'Show only active', {:action => "main"} %>
<% else %>
<%= link_to 'Show inactive', {:action => "main", :show_all => 1} %>
<% end %>
 
<%= link_to_remote 'Create',
{ :url => {:action => "create_employee"}, :update => 'roles' } %>
</th>
</tr>
<tr class="default_header_row">
<th width=50 class="default_header_cell small_08">Initials</th>
<th width=190 class="default_header_cell small_08">Name</th>
<th width=90 class="default_header_cell small_08">Access</th>
</tr>
<%= render(:partial => "employee_item", :collection => @employees) %>
</table>
</span>
acl / _employee_create.html.erb只是一个很长的输入表,显然会被插入到页面上的#post div中。
所以,我的问题是 - 如何在rails 3.2中使用UJS运行?
我的gemfile中有默认的jquery-rails,但我似乎无法找到处理ajax调用的位置,说实话,我不确定我应该怎么解决这个问题。 (特别是以更一般的方式)。应用程序遍布这个行为,所以我需要提出某种模仿前一种类型的解决方案。
答案 0 :(得分:0)
如果你想保留原型我建议使用原型和jquery。
确保application.js具有以下内容:
//= require prototype
//= require .....//other prototype libraries
//= require jquery
//= require jquery_ujs
//= ......//Ohter libraries
//Then add this to avoid any conflicts
jQuery.noConflict();
$j = jQuery;
如果您想使用jquery和$ for prototype
,可以使用$ j现在,如果您只是覆盖应用程序助手中的link_to_remote方法,那么它会呈现类似
的内容link_to "TEXT", URL, :remote=> true, options
和
Use a js.erb file instead of render :text=>'blah blah'
多数,我想
以下内容详细介绍: more details
答案 1 :(得分:0)
:(假设您的路由文件有employees_path)
<%= link_to employees_path, remote:true %>
/acl/employees/index.js.erb中的
:
<%= for employee in @employees %>
$('table tbody').append(<%= j raw render('employee', employee:employee))
<% end %>