Что вы хотите сделать, называется «Nested Models».
Сначала вы должны указать модель, чтобы позволить другую модель, как это:
# app/model/user.rb
class User < ActiveRecord::Base
belongs_to :role
accepts_nested_attributes_for :role
end
следующая вещь, которая на ваш взгляд
#app/views/users/new.html.ham
= simple_form_for @user do |f|
= f.input :name
= f.input :email
%br
= f.simple_fields_for :role do |role|
= role.input :designer
= role.input :developer
= f.button :submit, "Send Message", :class => 'btn btn-primary btn-block'
Теперь последний, но бот не менее вы, чтобы иметь возможность принять новые параметры в контроллере
class UsersController < ApplicationController
expose(:users){User.all.order(:id)}
expose(:user, attributes: :user_params)
def new
@user = User.new
@user.role.build
end
def create
if user.save
flash[:notice] = t(:user_was_successfully_created)
redirect_to root_path
else
render :new
end
end
private
def user_params
params.require(:user).permit(
[
:email ,
:name ,
role_attributes: [
:designer,
:developer,
]
]
)
end
end
вы можете посмотреть пример приложения https://github.com/mzaragoza/sample_nestes_forms
Я надеюсь, что это помогает Happy Hacking
Бит, где вы используете: 'админ: boolean',' дизайнер: boolean' и 'Разработчик: boolean' действительно делает мои глаза болят. Я предлагаю вам подумать о своем дизайне. – jvillian