Ниже приведены коды моделей.
user.rb
has_many :teams, dependent: :destroy
has_many :companies, dependent: :destroy
after_create :create_tables!
def create_tables!
companies.create!
Team.create!(user_id: self.id, company_id: Company.where(user_id: self.id).first.id)
end
company.rb
belongs_to :user
has_many :teams, inverse_of: :company, dependent: :destroy
has_many :users, through: :teams
accepts_nested_attributes_for :teams
team.rb
belongs_to :user
belongs_to :company, inverse_of: :teams
Ниже приведены коды моего контроллера
companies_controller.rb
def new
@company = current_user.companies.new
@company.build_teams
end
def update
current_user.companies.first.update_attributes(company_params)
respond_to {|format| format.js}
end
private
def company_params
params.require(:company).permit(:name, :about, :problem, :solution, :logo, :url, :email, :phone, :category, :started_in,
teams_attributes: [:position, :admin])
end
В представлениях
<%= form_with model: @company, method: :put do |f| %>
<%= f.fields_for :teams_attributes, @company.teams.first do |team| %>
<%= team.hidden_field :admin, value: true %>
<%= team.text_field :position, placeholder: 'Eg: CEO', class: 'input' %>
<% end %>
<%= f.submit 'Next' %>
<% end %>
Когда я пробую это в консоли rails, это работает и сохраняется в БД, в представлениях параметры также проходят хорошо.Его ниже
Но во взглядах написано
TypeError in CompaniesController#update no implicit conversion of Symbol into Integer