Мое приложение имеет список навыков на выбор.Когда вы нажимаете «Сохранить», идентификатор пользователя и идентификатор навыка записываются в базу данных.
Если пользователь снова заходит на эту страницу, все флажкивыключены
Как проверить из базы данных, чтобы выбранные флажки всегда были включены в представление?
Мое представление:
= form_for(:skill_list, url: user_skill_list_index_path) do |f|
%li
= f.check_box(:a1, class: 'm-enabled')
= f.label(:a1, 'Programming')
%li
= f.check_box(:a2, class: 'm-enabled')
= f.label(:a2, 'Communication')
%li
= f.check_box(:a3, class: 'm-enabled')
= f.label(:a3, 'Problem-solving')
%li
= f.check_box(:a4, class: 'm-enabled')
= f.label(:a4, 'Teamwork')
%li
= f.check_box(:a5, class: 'm-enabled')
= f.label(:a5, 'Creative')
%li
= f.check_box(:a6, class: 'm-enabled')
= f.label(:a6, 'Marketing')
Мой контроллер:
def create
@skill_record = UserSkillList.where(user_id: current_user.id).first
skill_params = params[:skill_list]
skills = []
skill_params.each do |k, v|
if v == '1'
id = k.dup
id.slice!(0).to_i
skills << id
end
end
if @skill_record.blank?
UserSkillList.create(user_id: current_user.id, skill_id: skills)
else
@skill_record.update_attributes(skill_id: skills)
end
redirect_to :back
end
Моя запись в БД: