Ich arbeite an einem bezahlten Anzeige Job Board hinzuzufügen, und bin mit # Payola-Zahlungen (Umsetzung von Stripe Payment Processor mit Rails-Anwendung) jeden Job laden Post auf der App ..Wie Preis beim Einchecken eine check_box in Ruby on Rails
Dies ist, was ich tun mag:
Wenn ein check_box aktiviert ist, möchte ich den Preis der Anwendung wird deduct von Standardsatz Preis in meinem Jobs zu ändern Tisch, zum Zugabe der check_box wert.
Pictorial Erklärung dessen, was ich tun mag:
Auf das Kontrollkästchen, die es annimmt in Jobs Tabelle $ 20 zu meinem Standardpreis hinzuzufügen.
schema.rb
Hinweis: Ein Preis Standard von $ 200 in Cent (d 20000) ist in meinem Job Tisch. Der Grund dafür ist, was in der Payola-Zahlungsdokumentation verlangt wird. Wenn also jemand eine Stellenanzeige veröffentlicht, werden von Stripe 200 € von seiner Kreditkarte abgebucht.
ActiveRecord::Schema.define(version: 20160827065822) do
create_table "jobs", force: :cascade do |t|
t.string "title", limit: 255
t.string "category", limit: 255
t.string "location", limit: 255
t.text "description"
t.text "to_apply"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "name", limit: 255
t.integer "price", default: 20000
t.string "permalink", limit: 255
t.string "stripeEmail", limit: 255
t.string "payola_sale_guid", limit: 255
t.string "email", limit: 255
t.string "website", limit: 255
t.string "company_name", limit: 255
t.boolean "highlighted"
end
end
Was habe ich dieses Problem zu lösen getan:
ich eine Methode in meinem Modell definiert (job.rb) genannt price_modification
und before_save
sie aufgefordert hatte, so dass mein Modell wie folgt aussieht Code unten aber hat nicht:
class Job < ActiveRecord::Base
include Payola::Sellable
before_save :price_modification
def price_modification
price
end
def price_modification=(new_price)
if :highlighted == t
self.price += (price + 2000)
else
self.price = new_price
end
end
end
Vielen Dank im Voraus.
Am Ruby 2.2.4
und Rails 4.2.5.1
Bitte erläutern „aber es hat nicht funktioniert“ und einige Stack-Trace bei Bedarf hinzufügen. – siegy22
@RaVeN Ich meinte, es zieht nicht $ 220 ab. Der Standardpreis, der $ 200 beträgt, wurde abgezogen. Die Idee ist nur den Preis zu ändern, den Stripe abzieht, wenn die check_box beim Ausfüllen des Formulars für die Stellenanzeige überprüft wird. –