2014-12-21 2 views
0

У меня есть форма, после чего я попытался вставить в модель профиля поставщика, которые являются наименованием, адресом и описанием этой модели в каталоге поставщиков. Ошибка не возникает, но когда я просматриваю базу данных, часть идентификатора поставщика не имеет данных.Я не могу вставить поставщика_ид, даже если он уже связан с двумя моделями

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

Ваш код выглядит нормально для меня. Вы получаете то же поведение, если вы делаете что-то вроде 'Profile.first.create_supplierprofile (company_name: 'x')' в консоли rails? – keyzee

+0

Я пробую это в консоли sir .. поставщик = поставщик.find (2) затем ' profile = поставщик.create_supplierprofile (имя_компании: «Voicesee», адрес: «CDO», описание: «App»)' .... Это работает, поставщик_id был в магазине. –

ответ

0

Я решил проблему .. Коды будут очень длинными, если я вставляю сюда. но я могу обсудить здесь поток решений, когда я пытаюсь redirect_to home_session_url (session [: user_id]). Я забыл, что была функция обратного вызова, которая проверяет файл, и он создаст файл поставщика экземпляра, а затем в консоли появился запрос на обновление. Итак, решение, которое я создал, было перенаправлено на другой метод под названием «панель управления», а затем стрела. Я просто знаком с рельсами. Спасибо!

+0

рад, что вы это поняли! – keyzee