Добрый день!
Есть компании, у компаний может быть много пользователей, у пользователей может быть много компаний, у пользователей в каждой компании есть одна должность.
Как правильно оформить форму для того чтобы можно было редактировать должность?
Модель Position = Должность
базу сделал так:
id|user_id|company_id|name|
class Company < ActiveRecord::Base
has_many :users_companies
has_many :users, through: :users_companies
has_many :positions
end
class User < ActiveRecord::Base
has_many :companies, through: :users_companies
has_many :users_companies
has_many :positions
end
class Position < ActiveRecord::Base
belongs_to :user
belongs_to :company
end
class UsersController < ApplicationController
def edit
@company = Company.find(params[:company_id])
@user = User.find(params[:id])
end
def update
@user = User.find(params[:id])
if @user.update(user_params)
redirect_to :back
end
end
private
def user_params
params.require(:user).permit(:last_name, :first_name, :middle_name)
end
end
Делаю форму а на ней высвечиваются все должности со всех компаний
<%= form_for @user do |f| %>
<%= f.label :last_name, "Фамилия" %><br />
<%= f.text_field :last_name, type: "text" %>
<%= f.label :first_name, "Имя" %><br />
<%= f.text_field :first_name, type: "text" %>
<%= f.label :middle_name, "Отчество" %><br />
<%= f.text_field :middle_name, type: "text" %>
<%= f.fields_for :positions do |ff| %>
<%= ff.label :name, "Должность" %>
<%= ff.text_field :name, type: "text" %>
<%= ff.hidden_field :company_id, value: @company.id %>
<% end %>
<%= f.submit "Сохранить", class: "login loginmodal-submit", type: "submit" %>
<% end %>
Как сделать форму чтобы можно было отредактировать существующую запись принадлежащей текущей компании?