2014-12-21 51 views
0

我有一個表格,然後我嘗試在供應商模型中插入供應商資料模型,這些模型是公司名稱,地址和描述也是這個模型關聯的。沒有錯誤,但是當我查看數據庫時,供應商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 %> 

謝謝!

+0

你的代碼對我來說很合適。如果你在rails控制檯中執行'Profile.first.create_supplierprofile(company_name:'x')'',你會得到相同的行爲嗎? – keyzee

+0

我在控制檯中試用這個sir .. supplier = Supplier.find(2)然後' profile = supplier.create_supplierprofile(company_name:「Voicesee」,address:「CDO」,description:「App」)'....它有效,supplier_id是商店。 –

回答

0

我解決了這個問題..如果我在這裏粘貼代碼將會很長。但我可以在這裏討論解決方案流程,當我嘗試redirect_to home_session_url(session [:user_id])時,我忘記了有一個回調函數check_profile,它會創建一個實例supplierprofile,然後在控制檯中有一個更新查詢。所以,我創建的解決方案重定向到不同的方法,稱爲儀表板然後繁榮。我只是新來的鐵軌。謝謝!

+0

很高興你明白了! – keyzee

相關問題