选择预先选择了多个值的标记 - 在数据库中手动插入值

Lor*_*nto 6 ruby ruby-on-rails ruby-on-rails-3.1 ruby-on-rails-3.2

我有一个问题,我没有正确规划我的数据库,所以我总是需要使用'替代'.

我想在select_tag中预先选择多个值.但我在表空缺中"手动"添加空缺.我的控制器:

def create
  @hr_curriculum_generic = HrCurriculumGeneric.new(params[:hr_curriculum_generic])

  # Tabela CandidatosxVagas
  unless params[:vacancy_ids].nil?
    @vacancies_ids = params[:vacancy_ids]
Run Code Online (Sandbox Code Playgroud)

- 我的表格:

  @vacancies_ids.each do |vacancy_id|
    # Armazena os id do curriculum, vaga e do cargo na tabela CandidatosxVagas
    @candidates_vacancies = CandidatesVacancy.new 
    <% @vacancies = Vacancy.all %>
    <%= select_tag "vacancy_ids[]", options_from_collection_for_select(Vacancy.all, "id", "title"), :multiple => true, :id => "vacancy_ids", :class => "form-control" %>
Run Code Online (Sandbox Code Playgroud)

.....

它的工作原理,但是当我点击编辑时,字段不会被预选.

有人通过了这样的麻烦,可以帮助我吗?

eab*_*ham 10

options_from_collection_for_select有4个参数:

  • 采集
  • ID

您可以提供单个值或哈希来表示选定的值.试试这个:

<%= select_tag "vacancy_ids[]", options_from_collection_for_select(Vacancy.all,"id","title",{:selected=>[1,2,3,4]})), :multiple => true, :id => "vacancy_ids", :class => "form-control" %>
Run Code Online (Sandbox Code Playgroud)

我不确定您尝试选择的值来自哪里,但将它们输入到选定的哈希中.