gpt4 book ai didi

ruby-on-rails - 计算与另一条记录关联的记录数量

转载 作者:太空宇宙 更新时间:2023-11-03 16:23:56 27 4
gpt4 key购买 nike

在我的 Ruby on Rails 应用程序中,我正在创建一个影院系统,在预订/新页面上,我允许用户通过下拉菜单选择他们需要的座位数量。但是我想做的是在屏幕上显示当前空闲的座位数,例如如果屏幕有 50 个座位并且已经预订了 7 个我希望系统显示:“有 43 个座位可用。”我知道我需要一个方法,但不确定我将如何实现它以及我将如何显示此消息。

值得注意的是,一个座位只会为一场演出预订,因此其他人可以免费使用,这意味着该方法必须能够计算该演出的可用座位数量。

有人可以帮忙吗

bookings/form.html.erb:

<%= form_for @booking do |f| %>
<%= f.hidden_field :user_id %>
<%= f.hidden_field :showing_id %>

<%= image_tag "thor_hammer.jpg",:size => "900x250" %>
<h1>NEW BOOKING:</h1>
<tr>
<td width="350px">
<br><%= f.label :seats_quantity, 'Please Select The Amount of Seats Required:' %>
</td>
<td width="300px">
<br><%= f.select :seats_quantity, '1'..'10' %><br>
</td>
<td width="300px">
<div class="actions">
<br><%= f.submit 'Book Showing' %>
</div>
<br><%= render "/error_messages", :message_header => "Cannot save: ", :target => @booking %>
</td>
</tr>
<% end %>

屏幕.rb:

class Screen < ActiveRecord::Base
has_many :seats
has_many :showings
def screens_info
"#{name}"
end
end

座位.rb:

class Seat < ActiveRecord::Base
belongs_to :screen
end

预订.rb:

class Booking < ActiveRecord::Base
belongs_to :user
belongs_to :showing
end

显示.rb:

class Showing < ActiveRecord::Base
belongs_to :film
has_many :bookings
belongs_to :screen
end

架构:

create_table "bookings", force: :cascade do |t|
t.integer "user_id"
t.integer "showing_id"
t.integer "seats_quantity"
end

create_table "screens", force: :cascade do |t|
t.string "name"
end

create_table "showings", force: :cascade do |t|
t.date "show_date"
t.time "show_time"
t.integer "film_id"
t.integer "screen_id"
end

create_table "seats", force: :cascade do |t|
t.string "row_letter"
t.integer "row_number"
t.integer "screen_id"
end

值得注意的是,虽然 seats 表包含属性 row_letterrow_number 用户并没有预订特定的座位,只是他们需要的座位数量。

最佳答案

在您的 Screen 类中添加:

has_many :bookings, through: :showings

然后你的代码变成这样:

def remaining_seats
seats.count - bookings.sum(:seats_quantity) # <-- edited when I realized there was a quantity in a booking
end

def screens_info
"#{name} (#{remaining_seats}/#{seats.count} remaining)"
end

关于ruby-on-rails - 计算与另一条记录关联的记录数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28678540/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com