如何解决似乎无法提交collection_select并接收未经许可的参数::hero_id
抱歉,我的帖子太乱了。我一直试图使该集合提交工作,但是每次我按下创建报告按钮时,我都会回到屏幕上并在Rails服务器终端中显示Unpermitted参数::hero_id。
型号
class Report < ApplicationRecord
validates :subject,presence: true,length: { minimum: 6,maximum: 100 }
validates :description,length: { minimum: 10,maximum: 300 }
belongs_to :requester
has_and_belongs_to_many :heros
end
视图/表格
<div class="container">
<div class="row justify-content-center">
<div class="col-10">
<% if @report.errors.any? %>
<h2>The following errors prevented the article from being saved</h2>
<ul>
<% @report.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
<% end %>
<%= form_with(model: @report,class: "shadow p-3 mb-3 bg-dark rounded",local: true) do |f| %>
<div class="form-group row">
<%= f.label :subject,class: "col-2 col-form-label text-light" %>
<div class="col-10">
<%= f.text_field :subject,class: "form-control shadow rounded",placeholder: "Subject of Report" %>
</div>
</div>
<div class="form-group row">
<%= f.label :description,class: "col-2 col-form-label text-light" %>
<div class="col-10">
<%= f.text_area :description,rows: 10,placeholder: "Description of Issue" %>
</div>
</div>
<div class="form-group row">
<%= f.label :hero,class: "col-2 col-form-label text-light" %>
<div class="col-10">
<%= f.collection_select(:hero_ids,Hero.all,:id,:hero_name,{prompt: "Select a Hero"},{:required => true}) %>
</div>
</div>
<div class="btn-toolbar p-2 mb-2 row justify-content-center">
<%= f.submit class: "btn btn-primary" %>
</div>
<% end %>
</div>
<div class="mb-3">
<%= link_to '[ Cancel and return to reports listing ]',reports_path,class: "text-info" %>
</div>
</div>
</div>
控制器
def report_params
#byebug
params.require(:report).permit(:subject,:description,hero_ids: [])
end
控制台
(byebug) params.require(:report)
<ActionController::Parameters {"subject"=>"Test report","description"=>"Test report","hero_ids"=>"1"} permitted: false>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。