在Ajax中使用Rails“Bootstrap加载按钮”

时间:2012-06-28 12:01:11

标签: jquery ruby-on-rails ajax button twitter-bootstrap

我有一个用户列表,我希望管理员通过按钮向这些用户发送密码。 所以我看到了bootstrap按钮javascript插件,我使用了加载一个。

这是index.html

<table>
<% @users.each do |user| %>

<td>
 <dl>
  <dt><%= user.name %></dt>
 </dl>
</td>

<td><%= link_to 'show', admin_user_path(user.id) %></td>
<td><%= button_to 'Send password', send_mail_path(user.id), remote: true, class: "btn btn-primary", :form => {:"data-loading-text" => "wait ..."}   %></td>

<% end %>
</table>

以html结尾:

<table>

<tbody>
 <td>
  <dl><dt>Jonh</dt></dl>
 </td>

 <td><form method="post" data-remote="true" data-loading-text="attendi ..." class="button_to" action="/admin/users/send_mail/26">
   <div><input type="submit" value="send password" class="btn btn-primary">
     <input type="hidden" value="bLGRJ1j9Hv75PsN4fuma0NlmYwAbS//1l884ShOotcw=" name="authenticity_token"></div>
   </form></td>

在管理资产/ javascript / admin / users中,我有 index.js.erb

$('.btn').button();

$(document).ready(function(){
  $('.btn').click(function() {
    $(this).button('loading');
  });
});

但加载动画不起作用。有什么建议吗?我对rails和jquery都很陌生

1 个答案:

答案 0 :(得分:4)

您使用的是什么版本的Rails?如果你在Rails&gt; 3.2(使用资产管道)我建议您检查文件assets/javascript/admin/users是否实际加载到主javascript文件和页面中。

在浏览器中打开页面,检查源代码,看看您创建的JavaScript代码是否在页面的标题部分加载/链接。另外,我不确定您使用js.erb扩展程序的原因。

您只需使用assets/javascript/admin/users/index.js即可。或者甚至更简单,在不需要时避免使用太多子文件夹。创建/assets/javascript/admin.js并确保/assets/javascripts/application.js文件包含该文件。

关于视图,以下代码

<td><%= button_to 'Send password', send_mail_path(user.id), remote: true, class: "btn btn-primary", :form => {:"data-loading-text" => "wait ..."}   %></td>

可以简化为

<td><%= link_to 'Send password', send_mail_path(user.id), remote: true, class: "btn btn-primary", data: { "loading-text" => "wait ..." } %></td>

无需使用button_to或表单。