我在Rails应用程序中有一个帮助程序,它根据控制器中设置的变量返回一些数据:如:
def title
base_title = "Unikernel"
if @title.nil? then
base_title
else
"#{base_title} | #{@title}"
end
end
在控制器中(通常在每个动作中)我设置值,例如:
@title = "Solutions"
现在当我处理一些结果时,我会从表单提交中获得,如果出现问题,我说:
render action: "edit"
或
render "new"
当我在渲染页面上时,变量未初始化,等等。
我应该怎么处理这个问题?
答案 0 :(得分:2)
通常,在更新时出现问题时,您会发现自己处于更新操作中。当创建时出现问题时,创建操作会显示错误消息。您是否也在创建和更新操作中设置了变量?
def new
@title = "New page"
end
def create
@title = "Errors!"
end
当您提交表单并收到错误时,您将从@title
操作中获得create
,如果您尚未将其设置为创建,则@title
将为零。
当您致电render
时,您没有重定向到其他操作,因此您仍然在update
。