2012-12-03 92 views
0

我有一個家庭登陸頁面,這是我的根網址。我希望用戶在這裏開始註冊過程,在這裏他們只輸入他們的電子郵件,點擊註冊,並在另一頁上繼續註冊。登陸頁面上的Rails註冊完成註冊

這是我想要的家根着陸頁

<div> 
<%= f.label :email %><br /> 
<%= f.email_field :email %> 
</div> 

這是全(獨立)的註冊頁面是什麼樣子的形式的一部分。我想在用戶進入了家庭,根着陸頁的自動的電子郵件地址填入此頁面上(他們打註冊和被重定向到這個頁面後。)

<h2>Sign up</h2> 

<%= form_for(resource, :as => resource_name, :url => registration_path(resource_name)) do |f| %> 
    <%= devise_error_messages! %> 

    <div><%= f.label :first_name %><br /> 
    <%= f.text_field :first_name %></div> 

    <div><%= f.label :last_name %><br /> 
    <%= f.text_field :last_name %></div> 

    <div><%= f.label :profile_name %><br /> 
    <%= f.text_field :profile_name %></div> 

    <div><%= f.label :email %><br /> 
    <%= f.email_field :email %></div> 

    <div><%= f.label :password %><br /> 
    <%= f.password_field :password %></div> 

    <div><%= f.label :password_confirmation %><br /> 
    <%= f.password_field :password_confirmation %></div> 

    <div><%= f.submit "Sign up" %></div> 
<% end %> 

<%= render "devise/shared/links" %> 

我使用的設計和我在處理這個問題時遇到了麻煩。謝謝參觀。

回答

2

在您認爲您正在主頁中呈現的情況下,將form操作設置爲註冊頁面/user/signup

在註冊控制器中,使用您從主頁收到的參數初始化@user

#UsersController 
def signup 
    @user = User.new(params[:user] 
end 

以上操作將渲染signup視圖。現在在form_for中使用@user。像:

form_for(@user) 

這會自動填充名字和電子郵件。

但是,顯然你正在使用Devise。我不知道它會爲它的默認控制器工作,因爲它是從initilizing空哈希資源(我看到下面的代碼源)

def new 
    resource = build_resource({}) 
    respond_with resource 
    end 

所以,你可能要override the registration controller

+0

我不理解,我想也許我已經在糟糕的方式措辭,請參閱我的修訂/編輯。 –

+0

我正在「關閉」這個問題,因爲它不是最好的設計解決方案來實現我希望用戶體驗的東西。 –

+0

不,你的描述還行。我提出了一些分散的想法,我認爲你會做對。如果你需要進一步的解釋,請讓我知道,我會嘗試解釋 – HungryCoder