Ruby RoR集合\u选择(不工作)V集合\u复选框(工作!)-为什么?
我试图使用collection_select将一些数据保存到我的模型中,但这不起作用,我不明白为什么。我曾尝试使用收集复选框,这些复选框很容易工作。我使用的是HABTM方法,我相信我的model.rb文件的编码是正确的,所以我认为下面的代码视图中的某些内容是不正确的 我能得到一些帮助吗 ----下面的代码不起作用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
<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