Ruby RoR集合\u选择(不工作)V集合\u复选框(工作!)-为什么?

Ruby RoR集合\u选择(不工作)V集合\u复选框(工作!)-为什么?,ruby,ruby-on-rails-4,ruby-on-rails-5,Ruby,Ruby On Rails 4,Ruby On Rails 5,我试图使用collection_select将一些数据保存到我的模型中,但这不起作用,我不明白为什么。我曾尝试使用收集复选框,这些复选框很容易工作。我使用的是HABTM方法,我相信我的model.rb文件的编码是正确的,所以我认为下面的代码视图中的某些内容是不正确的 我能得到一些帮助吗 ----下面的代码不起作用 <div class="form-group control col-md-12 mb-4"> <%= form.label :category, 'Pic

我试图使用collection_select将一些数据保存到我的模型中,但这不起作用,我不明白为什么。我曾尝试使用收集复选框,这些复选框很容易工作。我使用的是HABTM方法,我相信我的model.rb文件的编码是正确的,所以我认为下面的代码视图中的某些内容是不正确的

我能得到一些帮助吗

----下面的代码不起作用

 <div class="form-group control col-md-12 mb-4">
    <%= form.label :category, 'Pick A Category Most Appropriate' %>
        <div class= 'is-focused field has-addons control is-expanded select is-fullwidth'>
              <%= form.collection_select :category_ids , Category.all, :id, :name %>
        </div>
  </div>
从控制器更新操作

def update
    respond_to do |format|
      if @listing.update(listing_params)
        format.html { redirect_to @listing, notice: 'Listing was successfully updated.' }
        format.json { render :show, status: :ok, location: @listing }
      else
        format.html { render :edit }
        format.json { render json: @listing.errors, status: :unprocessable_entity }
      end
    end
  end
strong参数

def listing_params
  params.require(:listing).permit(:name, :description, :end_date, category_ids:[])
end
根据以上评论:


发生的情况是,您的集合\u select正在传回一个字符串/整数,而不是强参数所要求的数组

将multiple:true添加到集合\u select调用时会发生什么


我猜您需要的是在您的列表模型中有一个属于:类别关系:

class Listing < ApplicationRecord
  belongs_to :category
  ...

end
类列表
以上评论:


发生的情况是,您的集合\u select正在传回一个字符串/整数,而不是强参数所要求的数组

将multiple:true添加到集合\u select调用时会发生什么


我猜您需要的是在您的列表模型中有一个属于:类别关系:

class Listing < ApplicationRecord
  belongs_to :category
  ...

end
类列表
能否显示控制器发出的强参数调用和更新操作?@BenTrewern-根据要求更新问题。这与我在集合复选框中使用的设置相同,就像我在有问题的集合中使用的设置一样。发生的是,您的集合正在传回字符串/整数,而不是强参数所要求的数组。当你向你的集合添加多个:true\u select call时会发生什么?@BenTrewern-就这么简单!!!非常感谢你。我还以为我试过倍数:真的。但我的真正意图是只选择一个选项,而不是多个选项。我想我需要把我的模型改成一对多而不是多对多。思想?关于最初的问题,请提交您的答案,以便我可以接受。再次感谢您能显示控制器的强参数调用和更新操作吗?@BenTrewern-根据要求更新问题。这与我在集合复选框中使用的设置相同,就像我在有问题的集合中使用的设置一样。发生的是,您的集合正在传回字符串/整数,而不是强参数所要求的数组。当你向你的集合添加多个:true\u select call时会发生什么?@BenTrewern-就这么简单!!!非常感谢你。我还以为我试过倍数:真的。但我的真正意图是只选择一个选项,而不是多个选项。我想我需要把我的模型改成一对多而不是多对多。思想?关于最初的问题,请提交您的答案,以便我可以接受。再次感谢
class Listing < ApplicationRecord
  belongs_to :category
  ...

end