Ruby on rails 模型方法适用于预订模型,但不适用于事件和门票
我正在使用RubyonRails 4.1创建一个机票预订应用程序作为示例项目。三是三种模式——活动、门票和预订。活动有许多门票和预订。门票有很多预订,属于活动。预订属于活动和门票 我能够在Booking.rb中创建模型方法,并能够在视图中使用它们。我甚至能够用这些方法从其他模型中提取数据。但是,当我尝试在事件和票证中使用模型方法,并尝试在其显示页面中使用它们时,当尝试在显示页面中打印@Event.Event\u fire或@Ticket.maximum\u tickets\u allowed时,会出现未定义的方法“maximum\u tickets\u allowed”错误(或不管方法名称是什么)。PFA的截图。 预订模式: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时,
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谢谢你,伙计!