2012-06-28 35 views
0

我有一个用户列表,我希望Admin使用按钮向这些用户发送密码。 所以我看到bootstrap按钮的JavaScript插件,我用加载之一。Rails Ajax中的“Bootstrap加载按钮”

这是在这个网站,其结束的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> 

<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的/管理/用户我有index.js.erb的

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

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

但是,加载动画不起作用。任何建议?我对rails和jquery都很陌生

回答

4

你使用的是什么版本的Rails?如果您在Rails> 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或形式。

+0

我把它全部清理完毕,就像你建议的那样,现在它就可以工作。看起来JavaScript并未加载在页面中。 Grande @Simone,grazie mille,sto imparando da poco Rails e a volte mi perdo davvero in bicchiere d'acqua – Barbared