如何在rails中构建相互依赖的表单?

时间:2014-11-08 05:41:12

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

我正在构建一个rails应用程序,我是一个铁杆新手。我有两种型号 - 驾驶室操作员和驾驶室,它们彼此相关:

class Cab < ActiveRecord::Base
    belongs_to :operator
end

还有第三个模型驱动程序,我正在创建一个表单来编辑运营商使用的驱动程序。表单的一个字段允许用户在Opertors中进行选择,如下:

<div class="field">
    <%= f.label :operator_id, "Operator Name" %><br>
    <%= f.collection_select(:operator_id, Operator.all, :id, :name) %>
</div>

表单还包含一个可供出租车选择的字段,如下:

<div class="field">
    <%= f.label :cab_id, "Cab Number" %><br>
    <%= f.collection_select(:cab_id, Cab.all, :id, :number) %>
</div>

但是,我想通过上面的字段只显示那些分配给从第一个collection_select中选择的操作符的cab。这可能吗?怎么样?

编辑:正在为Driver对象生成表单,如下:

<%= form_for(@driver) do |f| %>

此外,Driver与Cabs相关如下:

class Driver < ActiveRecord::Base
    belongs_to :operator
    belongs_to :cab
end

3 个答案:

答案 0 :(得分:0)

您可以制作父表格,其他人则应为其子表格。这意味着您将从父表单继承表单,这将使表单相互依赖。

答案 1 :(得分:0)

听起来你想做嵌套表格。将有几个元素,包括正确的Rails模型设置,控制器和AJAX。

看看这个钢轨演员,应该让你接近你需要的。

http://railscasts.com/episodes/196-nested-model-form-part-1

答案 2 :(得分:0)

您可以隐藏表单,只要您选择运算符,就可以显示表单。