2010-04-08 109 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