我正在使用模态中的验证来检查错误。这很好,并显示错误消息(我使用调试器来确认这一点)。现在对我来说是棘手的部分。
所以现在当验证失败时,我在我的代码中执行此操作:
def create
checked_segment_topics = params[:checked_segment_topics].split(",")
@menu = Menu.create_menu(checked_segment_topics, menuparams)
if @menu == true
redirect_to menus_path
else
redirect_to newmenu_path
end
end
因为我正在重定向到新视图,所以不会显示错误消息。我尝试渲染,问题是它将UUID附加到表单的id。因此我的javascript代码失败了。在提交表单之前,我必须找到表单ID进行一些计算。
我的routes.rb文件的相关部分在这里:
get '/menus' => 'menus#index'
get '/newmenu' => 'menus#new'
resources :menus, only: [:new, :create, :edit, :update, :destroy]
有人可以指导我朝正确的方向发展吗?
答案 0 :(得分:1)
实例变量不会在请求中持续存在。因此,如果您不想为此使用会话,那么我能想到的另一种方法是将它们存储在数据库中而不运行验证。
def create
# some logic to build @menu
@menu.save(validate: false)
# some logic for redirection
end
然后,在必要的操作中获取它们并对其运行验证。
def new
# some logic to fecth @menu
@menu.valid?
# some logic to render @menu
end