Устранение неполадок двухэтапного процесса регистрации вложенных моделей - PullRequest
0 голосов
/ 01 сентября 2011

Я хочу начать процесс регистрации на моей домашней странице.В конце концов, в идеале процесс должен следовать следующей логике:

user = User.new
user.email = ""
user.password = ""
user.profile = Profile.new
user.profile.info = ""
user.profile.save
user.save

Я, конечно, буду использовать вложенные модельные формы.Но есть ли способ разделить это на две части?В первой части User будет содержать в основном user информацию, а также бит profile информации, а в части 2 будет содержаться только информация профиля.Затем, когда все сказано и сделано, пользователь перенаправляется в свой профиль пользователя.

Если это возможно, каково общее мнение об этом типе процесса?Во-вторых, мне интересно, может ли кто-нибудь помочь мне понять, как этого добиться.У меня есть все вложенные формы моделей, но должно быть что-то запутано в моем файле rout.rb / Controllers, который лишает меня возможности.

Вот мой файл rout.rb.

get "profiles/show"
get "/profiles/:id" => "profiles#show", :as => "profile"
post "/signup" => "profiles#create", :as => "signup"
get "skip/signup", :to => "users#newskip"
match "skip/profiles/new", :to => "profiles#newskip"
root :to => "users#new"

А вот мои UsersController и ProfilesController соответственно:

*class UsersController < ApplicationController*
  before_filter :authenticate, :only => [:edit, :update]

  def new
    @user = User.new
  end

  def create
    @user = User.new(params[:user])
    if @user.save
      redirect_to signup_path, :notice => 'User successfully added.'
    else
      render :action => 'new'
    end
  end

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

  def new
    @user.profile = Profile.new
  end

  def create
    @profile = Profile.new(params[:profile])
    if @profile.save
      redirect_to profile_path(@profile), :notice => 'User successfully added.'
    else
      render :action => 'new'
    end
  end

Может кто-нибудь помочь мне показать свет?Я знаю, что Devise - это решение, но я пытаюсь учиться без этого.По крайней мере, на первый взгляд.Этот предыдущий вопрос / ответ выглядит как потенциальный стартер.

Ответы [ 2 ]

0 голосов
/ 27 сентября 2011

Я завершил это, создав user и profile на главной странице, профили # изменили в качестве второго шага с профилем redirect_to.

0 голосов
/ 01 сентября 2011

Здесь - это Railscast о многошаговых формах.Я думаю, это должно помочь вам добиться того, чего вы пытаетесь достичь.

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