Двухстраничный процесс регистрации в рельсах? - PullRequest
0 голосов
/ 20 ноября 2011

Я пытаюсь создать приложение rails, где пользователь зарегистрируется, а затем сразу же получит указание заполнить профиль более подробной информацией.

В настоящее время я пытаюсь сделать это, имея оба *Модель 1003 * и profile, с соотношением has_one/belongs_to между двумя моделями.

У меня проблемы с create профилем пользователя.Тесты не пройдены с undefined method профилями для # when testing the creation, and using an automated profile builder called sample_data.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

Также не удается выполнить, у меня возникли проблемы с create созданием профиля для пользователя.Тесты не пройдены с undefined method 'profiles'

profiles_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

profile.rb это

class Profile < ActiveRecord::Base
  attr_accessible :city, :state, ...
  belongs_to :user

  validates :city, :presence => true

  validates :state, :presence => true

  ...

end

Может кто-нибудь увидеть, что я делаю неправильно?Есть ли способ объединить все элементы, которые мне нужны, в разделе «пользователи», проверить наличие всей необходимой информации и сделать так, чтобы процесс регистрации состоял из двух страниц?

Другие предложения для этого?

1 Ответ

0 голосов
/ 20 ноября 2011

Почему ты это делаешь?1.times do...end Вам это не нужно.

Ошибка возникает из-за того, что вам нужно создать ОДИН профиль, а не профили, для одного определенного пользователя.Так что попробуйте:

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

У вас контроллер тот же.У вас есть только один профиль, с помощью единственного числа выручит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...