首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 3.1嵌套表单验证

Rails 3.1嵌套表单验证
EN

Stack Overflow用户
提问于 2011-10-09 04:25:13
回答 1查看 394关注 0票数 0

我使用Formtastic 2作为嵌套形式-我有一个菜单和一个套餐模型,菜单有很多套餐,每一餐都属于一个菜单。我将套餐表单添加到菜单显示操作中,就在已经关联的套餐列表的正下方。

如果验证成功,创建套餐工作正常,我将再次转到菜单show action,在列表中列出所创建的套餐。

但是,当用餐没有通过验证,并且我再次使用适当的flash消息显示菜单show action时,我真的希望在表单中填入之前提交的数据,并在其旁边呈现错误。

我尝试了这个重定向:

代码语言:javascript
复制
redirect_to(menu_path(menu,@meal), :alert => 'The meal was not created')

但是我不能以这种方式获取meal变量并将其传递回表单,请求本身就是一个只有菜单id的get请求。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-10-09 05:23:11

你不应该在验证错误后重定向,因为你会丢失所有的状态。仅在验证失败后直接使用旧模板。一个小问题是,你需要使用flash.now[:alert],所以它不会带到下一页。

通常你会有这样的结构

代码语言:javascript
复制
def new
  @meal = Meal.new
end

def create
  @meal = Meal.new(params[:meal])
  if @meal.save
    flash[:notice] = "Meal was created"
    redirect_to menu_path(menu, @meal)
  else
    flash.now[:alert] = "The meal was not created"
    render :new
  end
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7699559

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档