Я хочу поместить родительский (в данном случае «Пользователи») идентификатор в дочерний («Проекты») при создании новой записи проекта.
Возможно, кодам не удается получить идентификатор в поле зрения.Не могли бы вы научить меня, в чем проблема?
Контроллер
#users_controllers.rb
def create
@user = User.new(name:params[:name])
@user.save
redirect_to("/")
end
#projects_controllers.rb
12 def create
13 @user = User.find_by(id: params[:id])
14 Project.new(
15 name: params[:name],
16 user_id: params[:id])
17 end
Модель
#user.rb
class User < ApplicationRecord
has_many :projects
end
#project.rb
class Project < ApplicationRecord
belongs_to :user, optional: true
end
Вид
#users.new.html.erb
<%= form_tag("/users", :method => :post) do %>
<input name="name" value="<%= %>">
<input type="submit" value="Registration">
<% end %>
#projects.new.html.erb
<%= form_tag(user_projects_path, :method => :post) do %>
<input name="name" value= "" >
<input type="submit" value="Create">
<% end %>
Маршрутизация
#routes.rb
Rails.application.routes.draw do
root 'users#index'
resources :users do
resources :projects, shallow: true
end
end
Колонка
2.0.0-p643 :001 > User.column_names
=> ["id", "name", "created_at", "updated_at"]
2.0.0-p643 :002 > Project.column_names
=> ["id", "name", "created_at", "updated_at", "user_id"]