一个视图两个控制器

时间:2015-09-30 02:21:27

标签: ruby-on-rails ruby

我的应用程序有安装控制器和地址控制器。

Address has_one :installation and Installation belongs_to :address

在我的安装视图中,我在其他simple_form中有一个simple_form。像这样:

<%= simple_form_for @installation, class: 'form-horizontal' do |f| %>
    <%= f.error_notification %>

        <%= f.simple_fields_for @installation.address do |u| %>
              <%= u.label :street_address, label: t('address.address_label'), required: true, class: 'col-sm-2 control-label' %>
                <%= u.input_field :street_address, class: 'form-control'
                %>

那我怎么能更新这两个模型呢?

我可以有两个def params吗?喜欢这个:

def installation_params
    params.require(:installation).permit(x)
end

def installation_address_params
    params.require(:????).permit(y)
end

1 个答案:

答案 0 :(得分:3)

您可以使用nested attributes

未经测试,但粗略地说:

型号:

class Installation < ActiveRecord::Base
  belongs_to :address

  accepts_nested_attributes_for :address
end

在您的InstallationsController

params.require(:installation).permit(...,
  address_attributes: [:id, ...])