如何在rails中显示属于_的对象的值

时间:2017-08-19 19:21:31

标签: ruby-on-rails sqlite

我正在开发乐队应用程序,其中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

1 个答案:

答案 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