Флажок - без изменения логического значения - PullRequest
0 голосов
/ 08 февраля 2019

У меня есть форма, в которой пользователь должен проверить состояние продаж перед отправкой

 <%= form_for @order, url: checkout_path do |f| %>                      
  <%= f.hidden_field :user_id %>
  <%= f.check_box :cgos_accepted %>
  <%= f.submit %>
<% end %>

:cgos_accepted - это атрибут порядка, который является логическим, и по умолчанию он имеет значение false.

Когда пользователь устанавливает флажок, он должен изменить значение на true, но это не так ...

РЕДАКТИРОВАТЬ>

это html когда флажокпроверено:

<input class="form-check-input boolean optional" type="checkbox" value="true" name="order[cgos_accepted]" id="order_cgos_accepted" data-com.agilebits.onepassword.user-edited="yes">

Я добавляю свой контроллер, может быть, что-то не так, и я не вижу ...

class Clients::OrdersController < Clients::ApplicationController

    def index
        @orders = Order.all
        @orders = @orders.filter_by_status(params[:status]) if params[:status]
    end

    def show
        @order = Order.find(params[:id])
    end

    def new
        @order = current_cart.order
        @billing_address = BillingAddress.new
    end

    def create
        @order = current_cart.order
        @order.update_sub_total!
        @order.update_total!
        if @order.update_attributes!(user_id: current_user.id)
        redirect_to new_clients_order_payment_path(@order)
        end
    end

    private

    def order_params
        params.require(:order).permit(:status,  :user_id, :token , :sub_total, :cgos_accepted)
    end
end

Ответы [ 2 ]

0 голосов
/ 08 февраля 2019

Хорошо, что вы добавили свой контроллер

В действии создания вы должны изменить:

 def create
    if @order.update_attributes!(order_params.merge(user_id: current_user.id))
     redirect_to new_clients_order_payment_path(@order)
    end
 end

Вы не передавали сильные параметры, поэтому он не мог обновить

и, как предложил Рэй, используйте:

= f.check_box :cgos_accepted, { class: "class-name", style: "style"}, "check ed-value "," unchecked-value "

0 голосов
/ 08 февраля 2019

используйте f.check_box, как показано ниже,

= f.check_box :cgos_accepted, { class: "class-name", style: "style"}, "checked-value", "unchecked-value"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...