在我的Rails中,我有以下模型:
STI子类
class Subscription::Discount < Subscription
def self.new_with_url
...
end
end
和另一个模型类(完全不同的东西,这是一个STI基类)
class Discount < ActiveRecord::Base
end
所以在我的控制器中,我在创建用户时使用Subscription::Discount
:
@user.subscription = ::Subscription::Discount.new_with_url()
然而它抱怨:undefined method 'new_with_url' for #<Class:0x007fbb499c6740>
我认为Rails没有使用new_with_url
调用正确的类。最重要的是,我不确定#<Class:0x007fbb499c6740>
是什么。所以,有两个问题:
Subscription::Discount
?#<Class:0x007fbb499c6740>
,我可以理解它是Discount
而不是匿名类。编辑:
以下是所有相关模型:
app/model/discount.rb
app/model/coffee_discount.rb (CoffeeDiscount < Discount)
app/model/subscription.rb
app/model/subscription/discount.rb (Subscription::Discount < Subscription)
答案 0 :(得分:0)
该方法名为create_with_url
,但您正在调用new_with_url
。
修复方法名称。