У меня есть форма, после чего я попытался вставить в модель профиля поставщика, которые являются наименованием, адресом и описанием этой модели в каталоге поставщиков. Ошибка не возникает, но когда я просматриваю базу данных, часть идентификатора поставщика не имеет данных.Я не могу вставить поставщика_ид, даже если он уже связан с двумя моделями
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 %>
Спасибо!
Ваш код выглядит нормально для меня. Вы получаете то же поведение, если вы делаете что-то вроде 'Profile.first.create_supplierprofile (company_name: 'x')' в консоли rails? – keyzee
Я пробую это в консоли sir .. поставщик = поставщик.find (2) затем ' profile = поставщик.create_supplierprofile (имя_компании: «Voicesee», адрес: «CDO», описание: «App»)' .... Это работает, поставщик_id был в магазине. –