【发布时间】:2017-05-26 18:17:59
【问题描述】:
我看到了这个问题,但没有帮助:What is the fully qualified name of a model in Ruby on Rails?
我有这个代码
# create Stripe customer
customer = Stripe::Customer.create(:email => @user.email, :source => params['subscription']['token'])
stripe_subscription = Stripe::Subscription.create(:customer => customer.id, :plan => @subscription.plan)
stripe = ::Stripe.new subscription: @subscription, customer_id: customer.id, plan_id: @subscription.plan,
stripe_subscription_id: stripe_subscription.id, last_paid: Time.now, status: stripe_subscription.status
Stripe 是一种宝石,但它也是我模型的名称。我试过上面的::Stripe.new,也试过stripe = @subscription.build_stripe ...。他们都给出了错误
Stripe:Module 的未定义方法 `new'
【问题讨论】:
-
我建议为您的
Stripe模型创建一个命名空间以避免与Stripe模块发生任何冲突。 -
两者不能使用相同的名称。您可以尝试重命名模型类 CustomModelName
-
@Gerry 如何创建命名空间?我尝试了
module MyModule; class Stripe < ApplicationRecord,但是当我尝试使用MyModule::Stripe.new在控制台中创建一个新实例时,它给出了NameError: uninitialized constant MyModule。 -
@Chloe 你把文件移到
models/my_model文件夹了吗?