【发布时间】:2014-07-30 21:00:38
【问题描述】:
我有一个包含 2 种类型的客户表:个人和公司。 我希望能够根据我创建的客户端类型呈现不同的部分(具有不同的字段数)。
有什么帮助吗? 谢谢!
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 partials sti
我有一个包含 2 种类型的客户表:个人和公司。 我希望能够根据我创建的客户端类型呈现不同的部分(具有不同的字段数)。
有什么帮助吗? 谢谢!
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-4 partials sti
您可以比较类型属性值并渲染所需的部分。或者为这两个模型使用不同的控制器和视图
【讨论】:
您应该有两个链接,创建人员和创建公司。当点击 Create Person 时,您仍然可以点击 new 页面,并且只需要一个类似 type=person 的参数(即 new_client_path(:type => "person"))。为公司做相反的事情。
在您的控制器中,在每个控制器之间切换以创建初始的空对象。如果没有type 参数,或者它无效,则默认设置person 类型,然后照常继续。
在您的new 页面上,您可以有一个大的if-else 来确定要显示哪些表单字段。或者更好的是,有两个部分,一个命名为_person_form,另一个命名为_company_form。然后在您的 new 页面中执行类似 render :partial => "#{@client.type}_form" 的操作,这样您就会得到正确的表单。
【讨论】: