轨。从控制器写入/更新第二个模型

时间:2017-03-19 16:31:03

标签: ruby-on-rails nested-forms

我有两个型号:Client和Vlan。当通过创建“客户端”从视图中“f.select”时,我需要将Vlan标记为“活动”。 这里有一些来自模型的代码:

class Client < ActiveRecord::Base
  has_many :vlans
end

class IP < ActiveRecord::Base
  belongs_to :client
end

进行迁移(可能是错误的方式):

class AddClientIdToIPs < ActiveRecord::Migration
  def change
    add_belongs_to :vlans, :client
  end
end

在Vlan模型中有一个client_id,在客户端模型中有一个vlan_id。

在clients_controller中我已经:

def create
    @client = Client.new(client_params)
    respond_to do |format|
      if @client.save
        format.html { redirect_to clients_path, notice: 'Success.' }
        #format.json { render action: 'show', status: :created, location: @client }
      else
        format.html { render action: 'new' }
        format.json { render json: @client.errors, status: :unprocessable_entity }
      end
    end
  end

通过创建“客户端”,我成功选择了vlan并在DB中更新(作为vlan_id),但是我必须看到哪个客户端绑定到vlan,所以我必须在Vlan模型中编写/更新client_id。

怎么做?我认为我的迁移/分析方式是错误的,但也许控制器也是错误的。

0 个答案:

没有答案