将嵌套表单错误消息呈现给不同的控制器

时间:2012-05-18 00:08:20

标签: ruby-on-rails ruby ruby-on-rails-3

我有票,我有回复。门票有很多回复,回复属于门票。 在我的票证/节目页面顶部,我有一个票证表格,可以更新一些票证参数。从

开始
= form_for @ticket do |f|

然后关闭自己。这个表格工作正常。

在同一页面上,我有一个用

创建的“回复表单”
= form_for [@ticket, @ticket.replies.build] do |f|

然后关闭自己。 问题是,如果在回复表单上调用了任何活动记录验证,则会将错误消息重定向到回复控制器,但我需要将其重定向到我正在使用的当前页面。我无法想象我的生活。谷歌搜索,试图在回复控制器中重新渲染渲染无济于事。

欢迎任何帮助。

谢谢大家。

1 个答案:

答案 0 :(得分:0)

也许远程执行此操作可以解决您的问题并带来一些用户友好性。

如果不是您的选择,请记住您应该在表单中执行@reply || @ticket.replies.build,否则如果有错误则不会在表单中显示。

渲染不会工作,因为它是一个不同的控制器,所以你有2个选项。

  1. 在故障单控制器上创建新操作以创建回复并在表单中指定
  2. 对您的操作使用redirect_to ticket_url(@ticket, @reply),并为此创建路线,它需要:ticket_id和:reply_id