我试图将我的个人资料模型更新为一个welcome_controller。这样做的原因是,作为一个受欢迎的向导,我有一些步骤是用户建立他的初始配置文件。
我无法正确路由,因为我没有提供 ID。
- Welcome#edit/ :step 加载正确的步骤
- welcome#update 应该更新配置文件属性并保存它所在的步骤(总共 3 个步骤)
路线.rb
match "/welcome/:step" => "welcome#edit"
match "/welcome" => "welcome#edit"
resources :welcome
welcome_controller 更新和编辑操作:
def edit
# form updates post to edit since
# profile is non existant yet
params[:step] = "photos" unless params[:step]
@photos = Photo.where(:attachable_id => current_user.id)
@profile = Profile.where(:user_id => current_user.id).first
@photo = Photo.new
if ["photos", "basics", "details"].member?(params[:step])
render :template => "/profiles/edit/edit_#{ params[:step]}", :layout => "welcome"
else
render :action => "/profiles/edit_photos"
end
end
# update profile attributes then update the correct step
def update
raise('welcome update called')
@profile = Profile.where(:user_id => current_user.id).first
@profile.update_attributes(params[:profile])
case params[:step] # update the steps
when "photos"
current_user.update_attributes(:welcome => 1)
when "basics"
current_user.update_attributes(:welcome => 2)
when "details"
current_user.update_attributes(:welcome => 3)
end
# redirect to welcome_path before_filter determine step
redirect_to welcome_path
end
照片、基本和详细信息的表格只是一个 form_for @profile 所以我将它发布到个人资料但想将它发布到欢迎控制器:(
解决这个问题的最佳方法是什么?完全停留在这个