我试图更新我的个人资料模型真的是welcome_controller。 这样做的原因是我有一些步骤作为用户构建他的初始个人资料的欢迎wizzard。
我无法正确使用路由,因为我没有提供ID。
的routes.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 所以我发布它到个人资料,但想把它发布到欢迎控制器:(
最好的办法是什么?完全坚持这个
答案 0 :(得分:1)
这个问题有两种方法可供选择。