2013-05-06 64 views
3

我正在使用設計和註冊表單顯示在/註冊路徑,但我想要另一個頁面具有相同的註冊表單,但頂部有不同的文本。如何在rails中使用兩個不同的註冊頁面(使用設計)

我可以看到註冊頁面在/views/devise/registration/new.html.erb中,但如何製作它的副本並在/ signup_new上顯示它?

編輯 - 我使用

devise_for :users do 
    get 'signup_new', :to => 'devise/registrations#new' 
end 

現在用上面的代碼我已經得到了signup_new重定向到形式,但我不想要一些不同的文字是展示在它的頂部。我現在怎麼做,因爲/ signup和/ signup_new都指向相同的表單/頁面。我試圖複製new.html.erb創造signup_new.html.erb但這不是工作

+0

你想讓用戶訪問這兩個頁面,還是隻是更新的頁面? – 2013-05-06 10:22:08

+0

@ mind.blank - 我想要用戶訪問這兩個頁面,理想情況下它應該是同一件事,我只是想在不同的頁面上顯示不同的文本,就是這樣 – iCyborg 2013-05-06 11:07:11

回答

4

在您的設計視圖,只需顯示基於請求URL不同的東西:

<% if request.fullpath.include?('signup_new') %> 
    <%= 'text 1' %> 
<% else %> 
    <%= 'text 2' %> 
<% end %> 

旁註:你真的不應該指向相同內容的2周不同的網址,對於谷歌它被稱爲重複的內容。

5

您可以更新您的routes.rb文件..

devise_for :users do 
    get 'signup_new', :to => 'devise/registrations#new'  
end 
+0

好吧,現在我已經將signup_new重定向到了形式,但我確實需要在頂部顯示一些不同的文本。我現在怎麼做,因爲/ signup和/ signup_new都指向相同的表單/頁面。我試圖複製new.html.erb並創建了signup_new.html.erb,但這不起作用 – iCyborg 2013-05-06 11:34:40

+1

您必須重寫設計註冊控制器並添加一個名爲'signup_new'的新操作。那麼你可以在'app/views/devise/registration /'中擁有自己的signup_new.html.erb模板。 – 2013-05-07 05:36:23

+0

覆蓋後,將您的routes.rb文件更改爲.. devise_for:users,:controllers => {:registrations =>「registrations」}獲取'signup_new',:至=>'registrations#signup_new'end – 2013-05-07 05:38:47

相關問題