2011-05-19 22 views
0

我是RoR3的新手,以及RoR3 Michael Hartl教程。出於興趣,我想將註冊的html表單移動到主頁上,而不是在註冊頁面上。該窗體的代碼:RoR 3 Hartl教程:將註冊頁面移動到主頁

<%= form_for(@user) do |f| %> 
    <div class="field"> 
    <%= f.label :name %><br /> 
    <%= f.text_field :name %> 
    </div> 
    <div class="field"> 
    <%= f.label :email %><br /> 
    <%= f.text_field :email %> 
    </div> 

*** more fields *** 

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

不能只是被移動到主頁 - 代碼將無法引用用戶模型正確地創建一個新的用戶,因此無法載入網頁。如何完成將此表單移至網站主頁的目標?

更多信息:網站的結構遵循標準導軌設置(app/models/user.rb中名爲user.rb的用戶模型,app/users_controller.rb中的控制器,視圖位於app/views中有頁面,佈局和用戶文件夾的文件夾,當前表單位於app/views/users/new.html.erb)。

回答

2

如果主頁,例如,使用PagesControllerhome行動,路徑是root :to => "pages#home"或類似的東西,你需要實例化@user變量在home行動:

class PagesController < ApplicationController 
    def home 
    @user = User.new 
    end 
    . 
    . 
    . 
end 

當表單在主頁上呈現,它將有權訪問@user變量。