0

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

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

我想要实现的是:

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

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

4

1 回答 1

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取决于您的需要

于 2010-04-09T00:33:53.680 回答