私は次の関係を持っています:
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 の間に直接のリンクはありません。userrestaurant
によって作成されたメニューのみが表示されるようにしようとしてい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 methodnil:NilClass menus`のメニューは常に, which I understand; I'm not getting to the適切に取得されます。
それぞれを通過し、それに接続されたrestaurantを追加するループを作成することを考えていますが、コントローラーmenu内でそれを行う方法が 100% わかりません。menu