Rails + facebox + authlogic - 怎么样?

时间:2010-04-08 20:30:19

标签: ruby-on-rails validation modal-dialog loginview

在我的网站上我想在使用facebox(jQuery插件)完成的模态窗口中登录/注册表单。更好的是:

  1. 使用一种具有表单的方法和模板创建视图,并将facebox引用到此视图。
  2. 在公共目录中创建静态HTML文件,并将facebox引用到此静态页面。
  3. 我想要实现的目标是:

    • 轻松验证(例如“已经使用的用户名”,“密码确认与密码不匹配”等内容)。
    • 轻松提交和重定向

    我是Rails的新手,我只知道Django中的表单验证,所以对于Django我可能会选择选项1,但它可能是Ruby中的另一件事。

1 个答案:

答案 0 :(得分:1)

如果您希望验证返回到注册页面,则应将其设置为动态页面。

公共目录中静态页面的另一个问题是您的链接全部变为硬编码,因此如果您的应用程序存在于域根目录(即example.com/app)之外,那么该静态文件中的链接可能是错误的。

此外,如果您需要将图像移动到其他主机,则会失去image_tag的优势。

如果你知道事情不会发生变化而你需要速度,那么只能使用静态资源。如果您的动态页面太慢,您可以缓存它们,或者您可能做错了。

更新:(以解决第一条评论)

当您在公共文件夹中时,无法使用rails功能构建URL。如果您在javascript中需要rails生成的URL,请从rails视图页面触发它们。 一般来说,我会做以下事情:

在head标记的application.html.erb中:

<%= yield :headScripting %>

然后在触发javascript的视图页面中:

<% content_for :headScripting do %>
    jQuery().ready(function() {
        jQuery("#placeholder").load("<%= summary_model_path(@model) %>");
    });
<% end %>

这将从模型控制器操作summary加载摘要文本。这可能会render :text => "summary"render :layout => false,具体取决于您的需求