我想創建恰好是模型的估算表單。這種形式有 客戶信息,這也是一個模型,車輛信息是另一種模式嵌入客戶的資源。員工姓名(也是模型)。我希望能夠選擇使用客戶的選擇框,這使我能夠列出客戶車輛列表,然後從模型員工列表中填充執行估算的員工。 (我正在學習ROR,所以請給我道歉,可能沒有正確的行話來解釋:我也能夠爲客戶生成選擇框,但不能超過這個選擇框,換句話說,甚至沒有能力。訪問車輛上selet箱每個客戶請幫我想使用其他模型的外鍵填充模型(使用選擇框)
型號:
class Estimate < ActiveRecord::Base
belongs_to :customer
belongs_to :vehicle
belongs_to :employee
has_many :lines_in_estimates
end
class Customer < ActiveRecord::Base
has_many :vehicles
has_many :estimates
validates :first_name, presence: true
validates :last_name, presence: true
validates :h_phone, presence: true
validates :c_phone, presence: true
validates_format_of :email, with: /\A[\w]([^@\s,;]+)@(([\w-]+\.)+ (com|edu|org|net|gov|mil|biz|info))\z/i
def first_name_and_last_name
"#{first_name} #{last_name}"
end
end
class Vehicle < ActiveRecord::Base
belongs_to :customer
end
class Employee < ActiveRecord::Base
end
控制器:
class EstimatesController < ApplicationController
before_action :set_estimate, only: [:show, :edit, :update, :destroy]
before_action :set_customer, only: [:show, :edit, :update, :destroy]
def index
@estimates = Estimate.all
end
def show
end
def new
@estimate = Estimate.new
end
private
def set_estimate
@estimate = Estimate.find(params[:id])
end
def set_customer
@estimate = Estimate.find(params[:id])
end
def set_vehicle
@vehicle = @customer.vehicles.find(params[:id])
end
def estimate_params
params.require(:estimate).permit(:statetax, :muntax, :subtotal, :total, :created_at, :updated_at,
:customer_id, :vehicle_id, :employee_id)
end
def customer_params
params.require(:customer).permit(:first_name, :last_name, :addr1, :addr2, :city, :state, :zip, :h_phone, :c_phone, :email)
end
end
形式:
<%= form_for(@estimate) do |f| %>
<% if @estimate.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@estimate.errors.count, "error") %> prohibited this employee from being saved:</h2>
<ul>
<% @estimate.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :Choose_Customer %><br>
<%= collection_select(:estimate, :customer_id, Customer.all, :id, :first_name_and_last_name, prompt: true) %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
很難確切地說出你的問題。你能給出一個特定的錯誤消息,這阻止你繼續在你的代碼?聽起來像你有一個非常複雜的領域模型。我會退後一步,弄清楚你需要什麼,然後嘗試並確定你的問題的範圍。我認爲現在它的立場太過寬泛。 –
感謝您伸出援助之手。我正在嘗試做出估計功能。我需要能夠創建一個估算模型的新估算值(我需要參考客戶,他們的車輛以及準備估算的員工。這些信息是坐在其他模型上的,我希望給員工有能力通過選擇姓名進行估算,當然還有一個列表(客戶的車輛將列入清單)當然,估算需要我輸入準備估算的員工。 –