Это должно быть прямой ошибкой, но я не могу точно определить, почему это происходит. Я изменил свой пост с более раннего вопроса, который я не очень точно опубликовал в своем проекте. Вот лучший пост для тех из вас, кто мог видеть предыдущий. По сути, у меня есть два логических значения, :accepted
и :complete
. Я назначил значения по умолчанию :accepted => true
и :complete => false
, но они все равно сохраняются как нулевые, когда я создаю новый объект :accept
. Файлы:
acceptpts_controller.rb (создание и параметры)
def create
@self_delivery = SelfDelivery.find_by(
id: params[:self_delivery_id])
begin
@accept = Accept.create(
:user_id => current_user.id,
:self_delivery_id => @self_delivery.id,
:accepted => params[:accepted],
:complete => params[:complete])
rescue ActiveRecord::RecordNotUnique => e
flash[:notice]= 'Duplicate Record'
end
if @accept.save!
redirect_to accept_path(@accept)
flash[:notice]= 'Accept was successfully created.'
end
end
new.html.erb
<h1>New Accept</h1>
<%= form_with(model: @accept, url: self_delivery_accepts_path(:user_id => params[:user_id], :self_delivery_id => params[:self_delivery_id]), :method => :post) do |form| %>
<% if @accept.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@accept.errors.count, "error") %> prohibited this accept from being saved:</h2>
<ul>
<% @accept.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= form.label :accepted %>
<%= form.check_box :accepted, checked: true %>
</div>
<div class="field">
<%= form.label :complete %>
<%= form.check_box :complete, checked: true %>
</div>
<div class="actions">
<%= form.submit %>
</div>
<% end %>
<%= link_to 'Back', self_delivery_accepts_path(:self_delivery_id => params[:self_delivery_id], :accepted => params[:accepted], :complete => params[:complete]) %>
ставит params.inspect
<ActionController::Parameters {"utf8"=>"✓", "authenticity_token"=>"ANOwCS3enYdqqcN01iAJg7EgRDhAC/Gpb3/h6yCGz2qSrKEz874ANBYeKGQuKSc3ctopIixI4rKiKuC5FJdsnQ==", "accept"=>{"accepted"=>"1", "complete"=>"0"}, "commit"=>"Create Accept", "controller"=>"accepts", "action"=>"create", "self_delivery_id"=>"1"} permitted: false>