Ruby on rails 当两个类的名称相同时,Rails得到错误的类
在我的Rails中,我有以下型号: STI子类Ruby on rails 当两个类的名称相同时,Rails得到错误的类,ruby-on-rails,ruby-on-rails-3,activerecord,model,Ruby On Rails,Ruby On Rails 3,Activerecord,Model,在我的Rails中,我有以下型号: STI子类 class Subscription::Discount < Subscription def self.new_with_url ... end end 但是它抱怨:未定义的方法“new_with_url”for# 我认为Rails没有使用new\u和类中定义 URL ,它是否被调用?是的,我只是用RoalsLogg.Debug来尝试它,它被调用并输出日志。如果是这样的话,请考虑Github.谢谢,我会尝试做一个最小的项目
class Subscription::Discount < Subscription
def self.new_with_url
...
end
end
但是它抱怨:未定义的方法“new_with_url”for#
我认为Rails没有使用new\u和
调用正确的类。除此之外,我不确定什么是#
。因此,有两个问题:
Subscription::Discount
#
,我可以理解它是否是折扣
,而不是匿名类app/model/discount.rb
app/model/coffee_discount.rb (CoffeeDiscount < Discount)
app/model/subscription.rb
app/model/subscription/discount.rb (Subscription::Discount < Subscription)
app/model/discount.rb
app/model/coffee_discount.rb(CoffeeDiscount<折扣)
app/model/subscription.rb
app/model/subscription/discount.rb(订阅::折扣<订阅)
该方法名为create\u with\u url
,但您正在调用new\u with\u url
修复方法名称。哦,很抱歉,当我复制并粘贴错误的方法时,这是我的输入错误,其中有两个方法,但我只显示了simplicityOk。如果您在代码< >折扣>代码>类中定义<代码> URL <代码>,它是否被调用?是的,我只是用RoalsLogg.Debug来尝试它,它被调用并输出日志。如果是这样的话,请考虑Github.谢谢,我会尝试做一个最小的项目来证明这个STI类在您的模型文件夹中吗?是的,它是,让我编辑帖子并列出所有相关的类
@user.subscription = ::Subscription::Discount.new_with_url()
app/model/discount.rb
app/model/coffee_discount.rb (CoffeeDiscount < Discount)
app/model/subscription.rb
app/model/subscription/discount.rb (Subscription::Discount < Subscription)