Ruby on rails 模型方法适用于预订模型,但不适用于事件和门票

Ruby on rails 模型方法适用于预订模型,但不适用于事件和门票,ruby-on-rails,ruby,Ruby On Rails,Ruby,我正在使用RubyonRails 4.1创建一个机票预订应用程序作为示例项目。三是三种模式——活动、门票和预订。活动有许多门票和预订。门票有很多预订,属于活动。预订属于活动和门票 我能够在Booking.rb中创建模型方法,并能够在视图中使用它们。我甚至能够用这些方法从其他模型中提取数据。但是,当我尝试在事件和票证中使用模型方法,并尝试在其显示页面中使用它们时,当尝试在显示页面中打印@Event.Event\u fire或@Ticket.maximum\u tickets\u allowed时,

我正在使用RubyonRails 4.1创建一个机票预订应用程序作为示例项目。三是三种模式——活动、门票和预订。活动有许多门票和预订。门票有很多预订,属于活动。预订属于活动和门票

我能够在Booking.rb中创建模型方法,并能够在视图中使用它们。我甚至能够用这些方法从其他模型中提取数据。但是,当我尝试在事件和票证中使用模型方法,并尝试在其显示页面中使用它们时,当尝试在显示页面中打印@Event.Event\u fire或@Ticket.maximum\u tickets\u allowed时,会出现未定义的方法“maximum\u tickets\u allowed”错误(或不管方法名称是什么)。PFA的截图。

预订模式:

class Booking < ActiveRecord::Base
 belongs_to :event
 belongs_to :ticket
 has_many :charges

def total_amount
    ticket.ticket_price.to_i * order_quantity.to_i
end

def test
    ticket.maximum_quantity.to_i
end
end
班级预订
预订显示页面:

 <h2>Booking Show</h2>

<p><%= @booking.buyer_name %></p>
<p><%= @booking.order_quantity %></p>
<p><%= @booking.ticket.ticket_name %></p>
<p><%= number_to_currency(@booking.total_amount) %></p>
<p><%= @booking.test %></p>
预订展

这就很好了。问题出现在event.rb中:

class Event < ActiveRecord::Base
has_many :tickets, dependent: :destroy
has_many :bookings
has_many :charges

def self.event_fire
    self.about.upcase
    #ticket.maximum_quantity.to_i * ticket.minimum_quantity.to_i
end
end
class事件
即使是简单的计算也无法在show模板中识别。当我使用@event.event\u fire打印值时。同样的情况也发生在票证模型方法中

class Ticket < ActiveRecord::Base
 belongs_to :event
 has_many :bookings

 def self.maximum_tickets_allowed
(1..maximum_quantity.to_i).to_a
#max = maximum_quantity.to_i
#self.maximum_quantity = (1..max).to_a
#self.maximum_quantity = max
 end

end
classticket
源代码在这里。如何克服这一问题?

尝试使用

class Ticket < ActiveRecord::Base
        belongs_to :event
        has_many :bookings

        def maximum_tickets_allowed
            (1..maximum_quantity.to_i).to_a
            #max = maximum_quantity.to_i
            #self.maximum_quantity = (1..max).to_a
            #self.maximum_quantity = max
        end

    end
classticket

self中删除
self。允许的最大票证数
。Self表示类方法。不能从实例方法访问类方法。查看更多信息

为您创建问题的视图在哪里?感谢@Avdept的支持@SahilGrover谢谢你,伙计!