我有一个用户列表,我希望管理员通过按钮向这些用户发送密码。 所以我看到了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都很陌生
答案 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
或表单。