Rails - 根据URL显示同一操作的不同表单

时间:2012-08-17 13:10:09

标签: ruby-on-rails forms ruby-on-rails-3.2

我有一个简单的客户端模型,包含一些字段和基本表单。访问它的网址为/clients/new,这会导致clients#new方法。我需要做的是创建一个到经销商的新路线,这将导致相同的方法和相同的形式,但有一些新的字段,如经销商的名称。

示例:网址/reseller/clients/new指向方法clients#new,并显示包含new表单新输入的新单元格。

我创建了一个方法来检查网址并设置会话,如果路由中包含"reseller",那么我的单元格可以处理是否显示新字段。但这导致我遇到有关模型验证的问题,因为如果在视图中显示新字段,则该字段存在为true。我必须在模型中访问我的会话才能创建一个正确的验证,这听起来不是正确的路径。

我想知道如何以正确的方式实现我的目标?

提前致谢。

1 个答案:

答案 0 :(得分:1)

解决。

为此,我创建了一个名为Reseller的新模型。有了它,模型Clientaccepts_nested_attributes_for :reseller。这样我就可以在我的单元格中为Reseller模型渲染表单,并使用:presence => true设置其中的所有字段,而不需要条件语句。如果网址为"reseller",则单元格将呈现表单并进行验证。