【问题标题】:Rails + facebox + authlogic - how?Rails + facebox + authlogic - 怎么样?
【发布时间】:2010-04-08 20:30:18
【问题描述】:

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

  1. 使用具有表单的方法和模板创建视图,并将 facebox 引用到此视图。
  2. 在公共目录中创建静态 HTML 文件,并将 facebox 引用到此静态页面。

我想要实现的是:

  • 轻松验证(例如“用户名已被占用”、“密码确认与密码不匹配”等)。
  • 轻松提交和重定向

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

【问题讨论】:

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


    【解决方案1】:

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

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

    此外,如果您需要将图像移动到不同的主机,您将失去 image_tag 的优势。

    只有在您知道事情不会改变并且需要速度的情况下才使用静态资源。如果你的动态页面太慢,你可以缓存它们,否则你可能做错了什么。

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

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

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

    <%= yield :headScripting %>
    

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

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

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

    【讨论】:

    • 如何从 javascript 中引用动态页面?我打算为此使用 jQuery,所以我将在 application.js 中附加我的事件处理程序。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    • 2011-11-12
    相关资源
    最近更新 更多