我有一个rails应用程序,它有两个独立的模型,具有两个单独的视图,名为Office和Office。
办公室模式:
class Office < ActiveRecord::Base
has_one :prospect
end前景模式:
class Prospect < ActiveRecord::Base
belongs_to :office
def office_company
office.try(:company)
end
def office_date
office.try(:office_date)
end
def office_company=(company)
self.office = Office.find_or_create_by(company: company)
end
def office_date=(office_date)
self.office = Office.find_or_create_by(office_date: office_date)
end
end展望表有一个office_id键。
前景表格视图:
<!-- Date -->
<div class="row form-box-outline">
<div class="form-subheader">Date</div>
<div class="form-group">
<%= f.label :Office_Date %>
<%= f.text_field :office_date, class: "space form-control input-width",
'data-provide' => 'datepicker', 'data-date-format' => 'yyyy-mm-dd',
'data-date-today-highlight' => 'true', 'data-date-orientation' => 'bottom auto',
'data-date-today-btn' => 'linked', 'data-date-autoclose' => 'true',
'data-date-keyboard-navigation' => 'false' %>
</div>
</div>
<!-- Prospect Information -->
<div class="row form-box-outline">
<div class="form-subheader subform-box-outline">Prospect Information</div>
<div class="subform-box-outline">
<div class="form-group ">
<%= f.label :Company, "Account Prospect" %>
<%= f.text_field :office_company, class: 'space form-control' %>
</div>
</div>在创建一个新的展望时,我需要访问Office模型上的公司字段和日期字段(在将来可能还需要一个或两个字段),这与我编写的定义方法没有问题。当我保存一个新的展望时,将两个数据库条目保存在Office模型中,问题就会出现。一项与客户有关,一项为日期。展望模型保存了一个条目:一个带有Prospect信息和office_id键。我相信这是因为两个对象正在被创建,然后被保存。
发布于 2016-02-19 07:54:38
我宁愿使用一个选择框,并传入一系列的办公室。保存办公室id和显示公司是没有意义的。只要您的office_id作为控制器中的param发送过来,它就会保存id,并且模型中定义的关系将处理活动记录关系。
我想这就是你想要的。我不会在不同的桌子上创建两张唱片。
https://stackoverflow.com/questions/35491859
复制相似问题