我有一個表格,然後我嘗試在供應商模型中插入供應商資料模型,這些模型是公司名稱,地址和描述也是這個模型關聯的。沒有錯誤,但是當我查看數據庫時,供應商ID部分沒有數據。我不能插入supplier_id,即使它已經關聯了兩個模型
Supplierprofile模型
belongs_to :supplier
供應商模型
has_one :supplierprofile
的routes.rb
resources :supplierprofiles
resources :supplierunits
resources :suppliers do
resources :supplierprofiles
resources :supplierunits
end
resources :sessions, except: :show do
member do
delete 'logout'
get 'home'
get 'profile'
get 'setting'
end
end
SupplierProfile控制器
before_action :set_supplierprofile, only: [:new, :create, :show]
def new
@profile = @supplier.build_supplierprofile
end
def create
if @profile = @supplier.create_supplierprofile(profile_params)
respond_to do |format|
format.html { redirect_to home_session_url(session[:user_id]),
notice: "Profile Completed!" }
end
else
respond_to do |format|
format.html { render action: 'new' }
end
end
end
private
def set_supplierprofile
@supplier = Supplier.find(session[:user_id])
end
def profile_params
params.require(:supplierprofile).permit(:company_name, :address, :description)
end
_form.html.erb
<%= simple_form_for([@supplier, @profile]) do |f| %>
<%= f.input :company_name %>
<%= f.input :address %>
<%= f.text_area :description %>
<%= f.button :submit %>
<% end %>
謝謝!
你的代碼對我來說很合適。如果你在rails控制檯中執行'Profile.first.create_supplierprofile(company_name:'x')'',你會得到相同的行爲嗎? – keyzee
我在控制檯中試用這個sir .. supplier = Supplier.find(2)然後' profile = supplier.create_supplierprofile(company_name:「Voicesee」,address:「CDO」,description:「App」)'....它有效,supplier_id是商店。 –