Ruby on rails 3.1 rails中的两页注册过程?

Ruby on rails 3.1 rails中的两页注册过程?,ruby-on-rails-3.1,Ruby On Rails 3.1,我正在尝试创建一个rails应用程序,用户将在其中注册,然后立即被指示使用更详细的信息填写个人资料 我目前正试图通过同时拥有用户和配置文件模型来实现这一点,这两个模型之间有一个/属于关系 我在为用户创建配置文件时遇到问题。测试创建时,使用名为sample\u data的自动配置文件生成器,使用#的未定义方法profiles'测试失败。rake`: namespace :db do desc "Fill database with sample data" task :populate =

我正在尝试创建一个rails应用程序,用户将在其中注册,然后立即被指示使用更详细的信息填写个人资料

我目前正试图通过同时拥有
用户
配置文件
模型来实现这一点,这两个模型之间有
一个/属于
关系

我在为用户创建配置文件时遇到问题。测试创建时,使用名为sample\u data的自动配置文件生成器,使用#
的未定义方法
profiles'测试失败。rake`:

namespace :db do
  desc "Fill database with sample data"
  task :populate => :environment do
    Rake::Task['db:reset'].invoke
    admin = User.create!(:name => "name name",
                 :email => "fakename@fake.com",
                 :password => "password",
                 :password_confirmation => "password")
    admin.toggle!(:admin)
    99.times do |n|
      name = Faker::Name.name
      email = Faker::Internet.email
      password = "password"
      User.create!(:name => name,
                   :email => email,
                   :password => password,
                   :password_confirmation => password)
    end

          User.all.each do |user|
            User.profiles.create(:city => Faker::Address.city,
                                 :state => Faker::Address.us_state_abbr,
                                 ...
                                 )
          end

  end
end
也会失败 我在为用户创建配置文件时遇到问题。测试失败,方法“配置文件”未定义。

profiles\u controller.rb
是:

class ProfilesController < ApplicationController
  before_filter :authenticate, :only => [:create, :edit]

  def create
    @profile = current_user.profiles.build(params[:profile])
        if @profile.save
          flash[:success] = "Profile Created!"
          redirect_to root_path
        else
          render 'pages/home'
        end
  end

  def edit

  end

end
有人能看出我做错了什么吗?是否有办法将我需要的所有项目合并到“用户”下,验证是否存在所有必需的信息,以及注册过程是否为两页

对此还有其他建议吗?

你为什么这样做?
1.做……结束的次数
你不需要那个

出现故障是因为您需要为某个用户创建一个配置文件,而不是配置文件。 所以试试这个:

User.all.each do |user|
  user.create_profile(:city => "bla", ...)
end

在你身上也一样。您只有一个配置文件,使用单数将有所帮助。

尝试过。虽然这是一段更简洁的代码,但仍然会出现与上面相同的错误。Rails在调用profile(单数)时不会给出错误undefined method profiles(复数)。请看一下我上面的代码,我有一个小错误。现在应该可以正常工作了。你用的正是我上面写的吗?我认为您可能在
User
模型上调用了方法
create\u profile
,而不是在实例
User
上调用。(区分大小写)你考虑过用它来注册吗?不,我不会。我将此作为一种学习体验。如果我想把事情做好,我会付钱给别人买elance之类的东西。
User.all.each do |user|
  user.create_profile(:city => "bla", ...)
end