मैं थोड़ी देर के लिए पुरानी रेल परियोजना पर काम कर रहा हूं। चूंकि मैंने कुछ समय में रेल के साथ काम नहीं किया है, इसलिए मैं थोड़ी सी जंगली हूं और रास्ते में कुछ मदद की ज़रूरत है।रेलवे पर रूबी का उपयोग कर डेटाबेस पोस्ट करने के लिए बूलियन मानों को सहेजना
बात यह है कि मैं ई वाणिज्य वेब पर एक पिकअप विकल्प जोड़ रहा हूं।
बैकएंड जब ग्राहक अपने उत्पाद बाहर की जाँच कर रहा है active admin
से प्रेरित है। उसे स्टोर में इसे लेने या इसे भेजने का विकल्प मिलता है।
और मैं बैकएंड में दिखाना चाहता हूं कि उत्पाद भेजा जाना चाहिए या दुकान में उठाया गया है या नहीं।
मैं यहां फंस गया हूं, और डिलीवरी विकल्प डेटाबेस में सहेजने लगते नहीं हैं .... अगर कोई मेरी मदद कर सकता है तो यह बहुत अच्छा होगा।
यहां पिकअप विकल्प के लिए एचटीएमएल है। यह 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>
में स्थित है और यहां 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
और यहाँ का एक हिस्सा है यहाँ 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
है और 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
है
क्या आपने radio_button_Tag का उपयोग करने का प्रयास किया है? https://apidock.com/rails/ActionView/Helpers/FormTagHelper/radio_button_tag –
एक और बात, क्या आपको लगता है कि इस कार्यक्षमता के लिए एक रेडियो बटन सही है? एक चुनिंदा ड्रॉपडाउन बेहतर नहीं होगा? –
हाय @ गैब्रियल मेस्क्विटा नहीं मैंने 'radio_button_Tag' का उपयोग नहीं किया है ... मुझे यकीन नहीं है कि इस कार्यक्षमता के लिए क्या सही है, शायद चुनिंदा ड्रॉपडाउन बेहतर होगा।मैं इस सब में खो गया हूं :) क्या आप पोस्ट कर सकते हैं कि आप यह कैसे करेंगे ?? – codegirl