Rails + Facebox:弹出窗口不起作用

时间:2014-01-09 18:28:18

标签: json ruby-on-rails-3.2

我按照rails3-devise-bootstrap-example的源代码来获取我的设计 - 登录页面(通常 - 没有AJAX - 工作正常)在弹出窗口中。

当我点击登录链接时,没有任何反应。日志文件告诉我

Started GET "/facebox/fb_login" for 127.0.0.1 at 2014-01-09 19:15:0
  Processing by FaceboxController#fb_login as JS
  Rendered devise/shared/_links.erb (3.0ms)
  Rendered devise/sessions/_new.html.erb (1155.0ms)
  Rendered facebox/fb_login.js.erb (1251.0ms)
Completed 200 OK in 1509ms (Views: 1508.0ms | ActiveRecord: 0.0ms)

但是没有登录弹出窗口。

以下是 index.html.erb 文件

中的登录链接
<%= link_to 'Login', fb_login_path, :remote => true %>

启动 fb_login.js 文件

$.facebox('<%= escape_javascript(render :partial => 'devise/sessions/new') %>')

并且应该打开如下所示的 _new.html.erb

<%= simple_form_for(resource, :as => resource_name, :url => session_path(resource_name)) do |f| %>
  <div class="form-inputs">
    <%= f.input :email, :required => false, :autofocus => true %>
    <%= f.input :password, :required => false %>
    <%= f.input :remember_me, :as => :boolean if devise_mapping.rememberable? %>
  </div>

  <div class="form-actions">
    <%= f.button :submit, "Sign in" %>
  </div>
<% end %>

<%= render "devise/shared/links" %>

但事实并非如此。出了什么问题?

1 个答案:

答案 0 :(得分:0)

我自己得到了答案。在资产/ javascripts下我必须定义

jQuery ->
  $('a[rel*=facebox]').facebox()

# facebox - make modal

$(document).bind "loading.facebox", ->
  $(document).unbind "keydown.facebox"
  $("#facebox_overlay").unbind "click"

在js.coffee文件中。