私は次の関係を持っています:
user.rb
has_many :ownerships
has_many :restaurants, :through => :ownerships
レストラン.rb
has_many :ownerships
has_many :users, :through => :ownerships
Menu モデルもありますbelongs_to :restaurant
。
明らかに、を経由しない限り、 amenu
と a の間に直接のリンクはありません。user
restaurant
によって作成されたメニューのみが表示されるようにしようとしていuser
ます。
この方法で、現在ログインしているユーザーが作成したレストランのみを表示できます。
restaurant_controller.rb
class RestaurantsController < ApplicationController
# GET /restaurants
# GET /restaurants.json
def index
if current_user.has_role? :admin
@restaurants = Restaurant.all
elsif current_user.has_role? :user
@restaurants = current_user.restaurants
end
end
menus
を通過して、コントローラーの下で同じことを行うにはどうすればよいrestaurant
ですか?
私はもう試した:
@menus = current_user.restaurants.menus
と
@menus = current_user.restaurants.each.menus
とりわけ、何も機能していないようです。undefined method
nil:NilClass menus`のメニューは常に, which I understand; I'm not getting to the
適切に取得されます。
それぞれを通過し、それに接続されたrestaurant
を追加するループを作成することを考えていますが、コントローラーmenu
内でそれを行う方法が 100% わかりません。menu