使用Rails STI时的条件部分

时间:2014-07-30 12:20:44

标签: ruby-on-rails ruby-on-rails-4 partials sti

我有一个客户表,有两种类型:人和公司。 我希望能够根据我创建的客户端类型呈现不同的部分(具有不同的字段数)。

有任何帮助吗? 谢谢!

2 个答案:

答案 0 :(得分:1)

您可以比较类型属性值并渲染所需的部分值。或者为这两个模型使用不同的控制器和视图

答案 1 :(得分:0)

您应该有两个链接,创建人员和创建公司。单击“创建人员”时,您仍然可以点击new页面,并且只有type=person之类的参数(即new_client_path(:type => "person"))。对公司采取相反的行动。

在您的控制器中,在每个控制器之间切换以创建初始的空对象。如果没有type参数,或者它无效,请默认设置类型person,然后照常继续。

new页面上,您可以设置一个大if-else来确定要显示的表单字段。或者更好的是,有两个部分,一个名为_person_form,另一个名称为_company_form。然后在new页面中执行render :partial => "#{@client.type}_form"之类的操作,以便获得正确的表单。

相关问题