希望我的連續問題對任何人都不是問題,我想要求您提供如何從兩個模型中創建兩個模型的幫助一種形式。從「belongs_to」形式創建兩個相關模型(導軌)
兩個相關的模型
class Employee < ActiveRecord::Base
attr_accessible :name
belongs_to :company
attr_accessible :company_id
end
class Company < ActiveRecord::Base
attr_accessible :name
has_many :employees
end
和我要的是建立一個公司,當我創建員工和輸入公司已經不存在。如果沒有 「時,該公司已不存在」 的要求,這是我的代碼:
employees/_form.html.erb
<%= simple_form_for(@employee) do |f| %>
<%= simple_form_for(@company) do |cf| %>
<%= f.input :name, label: 'Employee Name', :required => true %>
<%= cf.input :title, label: 'Company Name', :required => true %>
<% end %>
<% end %>
和employees_controller.rb
def new
@employee = Employee.new
@company = Company.new
end
[...]
def create
@employee = Employee.new(params[:employee])
@company = Company.new(params[:company])
@employee.company_id = params[:company_id]
respond_to do |format|
if @employee.save
format.html { redirect_to @employee, notice: 'Employee was successfully created.' }
format.json { render json: @employee, status: :created, location: @employee }
else
format.html { render action: "new" }
format.json { render json: @employee.errors, status: :unprocessable_entity }
end
end
end
這是員工和公司之間的某種關聯(emp loyee「持有」公司id),但它不會創造(或者,如果我理解得好,實際上並不存儲)公司。
如果我繼續在id分配前添加@company.save
,那麼一切似乎都沒問題。不過呢?我不應該渲染new company form
並在提交之後保存所有內容嗎?
我一直在尋找解決方案,但在每一種情況下,執行都是以相反的方式進行:如何從一個新的公司形式創建一羣員工。
你不能把一個表單的表單裏面,所以我開始重新思考來的呈現輸入只使用一個simple_form_for – RadBrad
「你不能」,因爲「這不是最佳實踐」?因爲這些字段實際上是顯示的,並且屬性也可以很好地發送。 – sebkkom
我認爲這比W3C XHTML規範特別禁止的「不是最佳做法」更嚴厲。它以細微的方式打破瀏覽器,很難探測到方式! – RadBrad