我正在开发乐队应用程序,其中Venues有许多活动和乐队,而那些活动和乐队属于场地。
我设置了外键,我对如何在事件index.html.erb中显示场地控制器的属性感到有点困惑
我想显示我的活动所属的特定场地,反之亦然。
这是我的事件控制器
class EventsController < ApplicationController
def index
@events = Event.all
#should I store my venues in the index to show its values?
@venues = Venue.where(params[:id])
end
def edit
@events = Event.find(params[:id])
puts @events.inspect
end
def update
@events = Event.find(params[:id])
@events.update_attributes(name: params[:event][:name], date: params[:event][:date], alcohol_served: params[:event][:alcohol_served], venue_id: params[:event][:venue_id], band_id: params[:event][:band_id])
redirect_to action: 'index'
end
def destroy
@events=Event.find(params[:id])
@events.destroy
redirect_to action: 'index'
end
def new
@Events = Event.new
end
def create
@Events = Event.create(name: params[:event][:name], date: params[:event][:date], alcohol_served: params[:event][:alcohol_served], venue_id: params[:event][:venue_id], band_id: params[:event][:band_id])
@Events.save
redirect_to action: 'index'
end
end
忽略我的一些重定向,它们仅用于测试目的
以下是我的模特
class Venue < ApplicationRecord
has_many :events
has_many :bands, through: :events
end
class Event < ApplicationRecord
belongs_to :venue
belongs_to :band
end
class Band < ApplicationRecord
has_many :events
end
答案 0 :(得分:1)
如果您有一个场地并且想知道在这个场地发生的所有事件:@events = Event.find_by(:venue_id venue.id)
如果您有活动并希望找到场地
venue_id = Event.select(:venue_id).find(params[:id])
@venue = Venue.find(venue_id)
根据用例,您可以params[:id]
替换event.id
。