gpt4 book ai didi

ruby-on-rails - Rails 3 - 模型关联(组合)和方法委托(delegate)

转载 作者:行者123 更新时间:2023-12-04 05:53:27 24 4
gpt4 key购买 nike

我有以下模型和关联:

class JuridicalPerson < ActiveRecord::Base
end

class Supplier < ActiveRecord::Base
belongs_to :juridical_person
delegate :company_name, :company_name=, :to => jurirical_person
end

控制者是:

def new
@supplier = Supplier.new

respond_to do |format|
format.html # new.html.erb
format.json { render json: @supplier }
end
end

架构如下所示:

create_table "suppliers", :force => true do |t|
t.integer "juridical_person_id"
...
end

create_table "juridical_people", :force => true do |t|
t.string "company_name"
...
end

现在,当我尝试在 View 中呈现它时,出现以下错误:

Supplier#company_name 委托(delegate)给 juridical_person.company_name,但 juridical_person 为 nil: #(Supplier id: nil, juridical_person_id: nil, created_at: nil, updated_at: nil)

提取的源代码(第 9 行附近):

8:       <%= f.label :company_name, "Company Name" %>
9: <%= f.text_field :company_name %>

似乎关联的 juridical_person 在委派时没有被创建,但我不明白为什么。即使我在 Controller 中创建它,应用程序也会因同样的原因尝试更新时中断。我错过了什么?

最佳答案

移除=改变

delegate  :company_name, :company_name=, :to => jurirical_person

delegate  :company_name, :company_name, :to => jurirical_person

关于ruby-on-rails - Rails 3 - 模型关联(组合)和方法委托(delegate),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12453390/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com