2011-05-19 67 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变量。