0

我试图用 facebox_render 和 rails 3 做一个简单的测试。

这是我的步骤:

1.) 安装 Jquery 1.4.2 (Jrails)

2.) 安装插件 rails plugin install git://github.com/ihower/facebox_render.git

3.)并添加了以下几行:

在我的 application.html.erb

<head>
  <title><%= yield(:title) || "Untitled" %></title>
  <%= stylesheet_link_tag "reset", "application", "facebox" %>
  <%= javascript_include_tag :defaults, "facebox" %>
  <%= csrf_meta_tag %>
  <%= yield(:head) %>
</head>

在我的 application_controller

class ApplicationController < ActionController::Base
  include FaceboxRender
end

当我试图在facebox中加载一些东西时,我只有加载器,什么都没有出现......

例如,在我的家/index.html.erb

<%= facebox_link_to "test", :url => "/images/rails.png" %> 

我很高兴知道我错在哪里,在文档中:

* facebox_link_to helper, it’s will launch loading facebox first, send ajax request second)
* link_to :remote => true, form_for :remote => true …etc Ajax helper (for Rails 3)

所以我想我坚持发送ajax请求..

查看以下帖子后:如何使面部框弹出保持打开状态,提交后面部框内的内容发生变化似乎我有同样的问题:我可以在 yhe firebug 控制台中看到“Ajax 未定义”

但是,我的 js 文件已正确加载:(如源代码所示)

<link href="/stylesheets/reset.css" media="screen" rel="stylesheet" type="text/css">
<link href="/stylesheets/application.css" media="screen" rel="stylesheet" type="text/css">
<link href="/stylesheets/facebox.css" media="screen" rel="stylesheet" type="text/css">
<script src="/javascripts/jquery.min.js" type="text/javascript"></script>
<script src="/javascripts/rails.js" type="text/javascript"></script>
<script src="/javascripts/facebox.js" type="text/javascript"></script>
<script src="/javascripts/application.js" type="text/javascript"></script>

谢谢你的帮助!

4

1 回答 1

1

我所做的是先安装 facebox_render,然后安装 jRails。如果要重新安装,您可能需要添加 --force。

确保您拥有最新的 jQuery。首先包含 jQuery,然后是 facebox.js 另外,我总是确保在其他样式之前先链接 facebox.css,它可能会覆盖您的某些样式。并通过查看源代码验证您是否正在使用 FF,js 和 css 链接是否正常工作。

此外,验证这一行:

<%= facebox_link_to "Sign Up&nbsp;", :url => new_account_path, :method => :get %>

我添加了 :method => :get 以确保它创建:

<a onclick="jQuery.facebox(function(){ jQuery.ajax({data:'authenticity_token=' + encodeURIComponent('Jbge/CYS4eXQ1d21E/S7tEcTm3dGdStdCtX9MwDx98o='), dataType:'script', type:'get', url:'/account/new'}) }); return false;" href="#">Sign Up&nbsp;</a>
于 2010-10-26T09:30:29.633 回答