Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在rails中显示属于对象的值_Ruby On Rails_Sqlite - Fatal编程技术网

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

Ruby on rails 如何在rails中显示属于对象的值,ruby-on-rails,sqlite,Ruby On Rails,Sqlite,我正在开发一个乐队应用程序来练习rails,其中场馆有许多活动和乐队,这些活动和乐队属于场馆 我已经设置了外键,但对于如何在Events index.html.erb中显示场馆控制器的属性,我有点困惑 我想展示我的活动属于哪个特定地点,反之亦然 这是我的事件控制器 class EventsController < ApplicationController def index @events = Event.all #should I store

我正在开发一个乐队应用程序来练习rails,其中场馆有许多活动和乐队,这些活动和乐队属于场馆

我已经设置了外键,但对于如何在Events 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
上课地点
如果您有一个场地,并且想知道在该场地发生的所有事件:
@events=Event.find_by(:vention\u id vention.id)

如果你有一个活动并且想找到地点

venue_id = Event.select(:venue_id).find(params[:id])
@venue = Venue.find(venue_id)

根据使用情况,您可以将
params[:id]
替换为
event.id

您可以共享您的活动、乐队和场馆模型吗?@StephanePaquet我添加了它们。谢谢你控制器内的def索引中会有什么?我不知道我能做到,谢谢!是的,在控制器中。ActionRecord为您的数据库提供了一个抽象层。在这种情况下,一个场馆有许多活动,这意味着在活动迁移过程中,您有一个指向场馆的id,按照惯例,这就是场馆id。如果我在我的乐队控制器中,想要展示活动,情况会是一样的吗?应该是这样。您还可以添加嵌套的_属性来创建更“用户友好”的关系,有关详细信息,请参阅Rails用户指南。