如何将参数传递给Rails中持续存在验证错误的表单?

时间:2009-05-31 23:56:47

标签: ruby-on-rails

我正在尝试在rails中创建一个分层菜单系统。 我的菜单模型是树形数据结构,我需要将父信息传递给新操作。我发现这样做的最好方法是将父亲的id作为查询字符串传递。这有效,除非验证块创建。问题是在呈现新视图后,该参数不再出现在URL中。

我这样做错了吗?我应该只是坚持会话中的价值吗?我应该创建一个下拉列表来选择父项(我更愿意让用户点击“在这里添加新项目”)。这一定是一个常见的问题,但我找不到相关的东西。

更新:为了澄清一个问题,我尝试执行以下操作以在失败的情况下呈现视图时传递参数,但是此时已经设置了url(我们已经发布到控制器的基本URL )。

format.html { render :action => "new", :parent_id=> params[:parent_id] }

我需要另一种传递参数的方法。

2 个答案:

答案 0 :(得分:1)

我明白了。我刚刚添加了一个隐藏字段来保存parent_id。当浏览器请求新表单时,我将parent_id放入模型对象中,并且它在psotback上保持不变。

答案 1 :(得分:0)

不是100%明确你想要实现的目标。

操作验证失败后,您是否再次渲染视图? 你能不能将parent_id作为参数传递给这个视图?