Я пытаюсь создать систему бронирования для ресторанов в Ruby on Rails. У меня три таблицы: пользователи, таблицы и оговорки. «Пользователи» имеют идентификаторы столбцов, «имя», «электронная почта», «телефон» и «totalPersons». «table» имеет идентификаторы столбцов и «места». «Оговорки» имеют столбцы «id», «user_id», «table_id» и «begin_datetime».Ruby on Rails, соединяющий несколько таблиц и извлечение данных
модели выглядят следующим образом:
class User < ActiveRecord::Base
has_many :reservations
has_many :tables, :through => :reservations
end
class Table < ActiveRecord::Base
has_many :reservations
has_many :users, :through => :reservations
end
class Reservation < ActiveRecord::Base
belongs_to :table
belongs_to :user
end
Я был в состоянии присоединиться к tables
и reservations
таблицы, но я не смог присоединиться к втроем.
Я пытаюсь показать полную резервацию с указанием имени и за каким столом пользователя.
<table>
<thead>
<tr>
<th>Reserverings ID</th>
<th>Tafel nummer</th>
<th>Seats</th>
<th>User</th>
<th>Begint om</th>
<th></th>
<th></th>
<th></th>
</tr>
</thead>
<tbody>
<% @tables.each do |table| %>
<tr>
<td><%= reservation.id %></td>
<td><%= reservation.table_id %></td>
<td><%= table.seats %></td>
<td><%= user.name %></td>
<td><%= reservation.begin_datetime %></td>
<td><%= link_to 'Show', table %></td>
<td><%= link_to 'Edit', edit_table_path(table) %></td>
<td><%= link_to 'Destroy', table, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</tbody>
</table>
В контроллере моей присоединиться выглядит как
@reservations = reservation.joins(:tables, :users)
Можете ли вы мне помочь? Rails версии 4.0
EDIT: На http://guides.rubyonrails.org/ я увидел
Post.joins(:comments => :guest)
SQL, который производится:
SELECT posts.* FROM posts
INNER JOIN comments ON comments.post_id = posts.id
INNER JOIN guests ON guests.comment_id = comments.id
Я думаю, мой SQL-код для всех бронирований с пользователями и таблицы они зарезервировали бы номер
SELECT * FROM reservations, users, tables
INNER JOIN reservations ON reservations.user_id = users.id
INNER JOIN reservations ON reservations.table_id = tables.id
Возможно, это прояснит вам все. Поэтому теперь мне нужно знать, как это получается в рубине на рельсах.
Какая версия рельсов? Можете ли вы показать нам свою попытку присоединиться к столам, чтобы мы могли помочь вам исправить? – kushyar
Я отредактировал свой вопрос. Версия Rails 4.0 – user2493145
Один пользователь или все пользователи с их оговорки? – kushyar