2016-11-07 68 views
0
  • 我有两个模型,articlescomments
  • articles有很多comments
  • comments不能为空字符串。

对于articles#index,我在每篇文章下面有几个文本字段(用户名,comment_text等)供用户留言。如何重定向并保留对象的属性

当用户提交空评论时,rails会执行验证作业,并且保存方法在comments#create上失败。我现在想回到articles#index并显示相应的错误消息。这是我需要帮助的地方。

看来我只有两个选择,其中没有一个能满足我。或者:

  1. renderarticles#index的从comments#create观点,但我必须以某种方式重复的articles#index所有代码和用户停留在这是不恰当的网址(comments#create,而他们有articles#index渲染)

  2. 或我redirect_toarticles#index但后来我失去了我的评论对象。只有使用闪光灯的消息,我不会做,在这里,我真的需要让我的对象的所有属性

有没有办法回去articles#index,同时保持我的评论的对象?这个用例中的最佳做法是什么? PS:我不希望在这里使用任何JavaScript/AJAX。

+1

您可以使用[session](http://guides.rubyonrails.org/action_controller_overview.html#session)变量 – SomeSchmo

+0

我同意Rocco - 设置会话变量 - index可以检查会话变量是否为设置并相应地使用这些信息,一旦完成它,将会话变量设置为零。 – David

回答

0

我认为一种合法的方法是设置一个临时会话变量,然后在下一个请求中加载后清除它。

实现此目的的另一种方法是将查询字符串中的下一个请求传递给参数。 像这样:

redirect_to(foo_path, bar_attributes) 

其中bar_attributes会出现乱码。

相关问题