2010-04-08 107 views
0

我的网站我想要使用facebox(jQuery插件)完成模态窗口中的登录/注册表单。有什么更好的:Rails + facebox + authlogic - 如何?

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

我想实现的是:

  • 容易验证(如“用户名已被使用”,“确认密码不匹配密码”之类的东西)。
  • 轻松提交,并重定向

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

回答

1

如果您希望验证回到注册页面,您应该使其成为一个动态页面。

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

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

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

UPDATE:(解决第一个评论)

不能使用轨道的功能,当你在公共文件夹建立你的网址。如果您需要在您的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取决于您的需求

+0

如何从JavaScript中引用动态页面?我打算为此使用jQuery,所以我将在application.js中追加我的事件处理程序。 – Vitaly 2010-04-09 02:29:20