bin Streifen für Benutzer zu abonnieren. Von dort habe ich das Stripe-Datum gesammelt und im Subscription-Modus gespeichert. Ich habe Enum für mein Benutzermodell erstellt, um verschiedene Rollen basierend auf der Stripe-Abonnement-ID zuzuweisen. hier ist, wie mein Benutzermodell wieWie aktualisiert man die Aufzeichnung in Schienen Controller
class User < ApplicationRecord
enum role: [:user, :gold, :platinum, :diamond ]
has_one :subscription
has_one :shipping
extend FriendlyId
friendly_id :firstname, use: [:slugged, :finders]
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
und unten ist mein Subskriptionscontroller
def subscription_checkout
user = current_user
plan_id = params[:plan_id]
plan = Stripe::Plan.retrieve(plan_id)
# This should be created on signup.
customer = Stripe::Customer.create(
description: 'Customer for [email protected]',
source: params[:stripeToken],
email: '[email protected]'
)
# Save this in your DB and associate with the user;s email
stripe_subscription = customer.subscriptions.create(plan: plan.id)
@sub = Subscription.create(plan: stripe_subscription.plan.name,
stripeid: stripe_subscription.id,
user_id: current_user.id,
customer: stripe_subscription.customer,
subscriptionenddate: stripe_subscription.current_period_end)
if @sub.save
current_user.role plan.id
current_user.save
flash[:success] = 'sub created!'
redirect_to root_url
else
render 'new'
end
end
aussieht, wenn es um die Rolle i
ArgumentError: wrong number of arguments (1 for 0)
aktualisieren erreichen zu bekommen, wie kann ich das Update Rolle und was mache ich falsch?
das funktioniert. bekomme ich jetzt eine undefinierte Methode 'Diamant? ' für # selbst in meiner Rails-Konsole gibt 'user.diamond zurück? => true' –
Wo ist Ihr umgebender Code? Haben Sie in die Konsole gesprungen, indem Sie einen Debugger platziert haben, bevor der Fehler ausgelöst wurde, oder haben Sie gerade IRB geöffnet? – arjabbar