Добавить новый столбец в таблицу пользователей. Пусть это будет opened_once:boolean
с DEFAULT false
Тогда в вашем users_controller
def edit
@user = User.find( params[:id], :conditions => ['opened_once => ?', false] ) rescue ActiveRecord::RecordNotFound
@user.update_attribute :opened_once, true
...
end
так что теперь он может отображаться только один раз сразу после создания нового пользователя при перенаправлении на страницу редактирования
UPD
Что вы можете сделать более Rails способом? Без добавления нового материала в вашу базу данных и так далее. Вы можете вообще удалить свое действие edit
, чтобы ваше представление редактирования отображалось при создании:
def create
@user = User.new params[:user]
respond_to do |format|
if @user.save
format.html{ render :action => :edit }
else
format.html{ render :action => :new }
end
end
end
Пользователь увидит форму редактирования только один раз, если проверка пройдена и его профиль создан.
Так что это конкретно "Rails way"
:)