rails proyecto new myapp digitalocean datos crear configurar conectar con ruby-on-rails ruby postgresql radio-button e-commerce

ruby on rails - proyecto - guardar los valores booleanos en la base de datos postgres usando ruby ​​on rails



rails new myapp postgresql (1)

Entonces, ¿desea saber si el producto será recogido en la tienda o enviado por correo electrónico correctamente?

Ya que estás perdido, una solución más simple sería:

1 - Cambie el t.boolean "pick_up" a t.string "pick_up"

2 - use esta http://guides.rubyonrails.org/form_helpers.html#the-select-and-option-tags , para crear una lista con estas dos opciones.

3 - En su controlador guarde la opción que el usuario quiere.

Creo que para usar botones de opción, debes tener dos campos en tu base de datos. Algo como esto:

t.boolean "pick_up" t.boolean "sent_email"

si el usuario elige recoger, recibirá un parámetro con un valor verdadero para recoger, luego puede guardar en su base de datos. ¡Así que esta es otra opción también!

Espero eso ayude.

He estado trabajando en un viejo proyecto de rieles por un tiempo. Como no he trabajado con rieles en algún momento, estoy un poco oxidado y necesito ayuda en el camino.

El caso es que estoy agregando opciones de recogida a una web de comercio electrónico.

El back-end es manejado por active admin

Cuando el cliente está revisando su producto. Tiene la opción de recogerlo en la tienda o enviarlo.

Y quiero que la orden muestre en el back-end si el producto debe enviarse o si se recoge en la tienda.

Estoy como atrapado aquí, y las opciones de entrega no parecen estar guardando en la base de datos ... Sería tan agradable si alguien pudiera ayudarme con esto.

aquí está el html para la opción de recoger. está ubicado en views/orders/_form.html.erb

<div class="col-md-5 pick-up-buttons" id="country_div"> <li> <%= f.radio_button :pick_up, "1", checked: false, data: { question: "Pick up your items in the store" } %> <%= f.label :pick_up, "Pick up your items in the store" %> </li> <li> <%= f.radio_button :pick_up, "0", checked: true, data: { question: "Send the items by mail" } %> <%= f.label :pick_up, "Send the items by mail" %> </li> </div>

y aquí hay una parte del archivo schema.rb

create_table "orders", force: :cascade do |t| t.string "name" t.string "email" t.text "address" t.string "city" t.string "country" t.datetime "created_at", null: false t.datetime "updated_at", null: false t.boolean "shipped", default: false t.boolean "pick_up", default: false t.string "delivery" end

Y aquí está el orders_controller.rb

class OrdersController < ApplicationController include CurrentCart before_action :set_cart, only: [:new, :create] before_action :set_order, only: [:show, :edit, :destroy] def index @orders = Order.all? end def new @images = ["1.jpg", "2.jpg", "3.jpg", "4.jpg", "5.jpg"] @random_no = rand(5) @random_image = @images[@random_no] if @cart.product_items.empty? redirect_to root_url, notice: ''Your Cart is Empty'' return end @order = Order.new @client_token = Braintree::ClientToken.generate @del_cost_euro = 20 end def create @order = Order.new(order_params) if @order.save charge if @result.success? @order.add_product_items_from_cart(@cart) Cart.destroy(session[:cart_id]) session[:cart_id] = nil OrderNotifier.received(@order).deliver redirect_to root_url, notice: ''Thank You for Your Order'' else flash[:error] = ''Please Check Your Cart'' redirect_to root_url, alert: @result.message @order.destroy end else @client_token = Braintree::ClientToken.generate render :new end end def show end def destroy @order.destroy redirect_to root_url, notice: ''Order deleted'' end private def set_order @order = Order.find(params[:id]) end def order_params params.require(:order).permit(:name, :email, :address, :city, :country, :pick_up, :delivery) end def charge @result = Braintree::Transaction.sale( amount: @cart.total_price_usd, payment_method_nonce: params[:payment_method_nonce] ) end end

Y aquí está la app/admin/order.rb

ActiveAdmin.register Order do permit_params :shipped after_update do |order| OrderNotifier.shipped(@order).deliver if order.shipped end show do |order| panel ''Customer Details'' do attributes_table_for order, :name, :email, :address, :city, :country end panel ''Created'' do "#{time_ago_in_words order.created_at} ago" end panel ''Shipped'' do order.shipped end panel ''delivery'' do order.pick_up end panel ''Order Details'' do table_for(order.product_items) do column ''Product'' do |item| item.product.title end column ''Quantity'' do |item| item.quantity end column ''Price Euro'' do |item| number_to_currency item.total_price_eur end column ''Price USD'' do |item| number_to_currency item.total_price_usd end end end panel ''Order Total USD'' do number_to_currency order.total_price_usd end panel ''Order Total Euro'' do number_to_currency order.total_price_eur end end