我正在尝试在rails中创建一个分层菜单系统。 我的菜单模型是树形数据结构,我需要将父信息传递给新操作。我发现这样做的最好方法是将父亲的id作为查询字符串传递。这有效,除非验证块创建。问题是在呈现新视图后,该参数不再出现在URL中。
我这样做错了吗?我应该只是坚持会话中的价值吗?我应该创建一个下拉列表来选择父项(我更愿意让用户点击“在这里添加新项目”)。这一定是一个常见的问题,但我找不到相关的东西。
更新:为了澄清一个问题,我尝试执行以下操作以在失败的情况下呈现视图时传递参数,但是此时已经设置了url(我们已经发布到控制器的基本URL )。
format.html { render :action => "new", :parent_id=> params[:parent_id] }
我需要另一种传递参数的方法。
答案 0 :(得分:1)
我明白了。我刚刚添加了一个隐藏字段来保存parent_id。当浏览器请求新表单时,我将parent_id放入模型对象中,并且它在psotback上保持不变。
答案 1 :(得分:0)
不是100%明确你想要实现的目标。
操作验证失败后,您是否再次渲染视图? 你能不能将parent_id作为参数传递给这个视图?