(Rails 2.3.5)
我有两个脚手架:目录&用户
对于目录显示操作(比如显示操作:“\ directories \ 2”),我使用了User \ New表单并将其设置为部分,以便用户可以将用户添加到目录。我无法弄清楚的是,如果有任何验证错误,我可以在创建操作中返回“\ directories \ 2 \ show”。如果User.save成功返回工作正常,我只是无法弄清楚如何格式化Render操作以返回到目录并在New User partial中显示错误消息和字段。
如果保存成功,这可以正常工作,如果有错误将使用相同的东西将工作,但不会显示error_messages(我知道错误消息只是假设在Render上传递,而不是重定向,但是当涉及id参数时,我无法弄清楚渲染操作所涉及的语法):
format.html { redirect_to directory_path(@user.directory_id) }
用户在Direcory Show动作中创建由partial调用的动作: def创建 @user = User.new(params [:user])
respond_to do |format|
if @user.save
flash[:notice] = 'User ' + @user.name+ ' was successfully created.'
format.html { redirect_to directory_path(@user.directory_id) }
format.xml { render :xml => @user, :status => :created, :location => @user }
else
# what to do here to successfully return to 'directories\show\(@user.directory_id)'
# and what to do here that successfully passed the error_messages
end
end
end
感谢您的帮助 - 希望这是有道理的
答案 0 :(得分:9)
要从另一个控制器渲染操作,您需要指定要渲染的模板。
render :template => 'other_controller/view_template_name'
PS:请记住,您必须定义其他控制器操作定义的视图渲染所需的任何实例变量,因为渲染模板在渲染视图之前不会调用其他控制器的函数。