Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.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 如何添加多个关联?_Ruby On Rails - Fatal编程技术网

Ruby on rails 如何添加多个关联?

Ruby on rails 如何添加多个关联?,ruby-on-rails,Ruby On Rails,这是我的第一个问题,我正在寻找一个类似的问题,但还没有找到。我正在开始学习RubyonRails,我学习了一门课程,该课程介绍了如何使用has_许多 我创建了我的班级乐队 rails g model Band name:string website:string email:string 我也以同样的方式创作了我的课堂风格 该命令生成如下类 class Band < ActiveRecord:Base end a没有指定类型,但将band.rb文件编辑为: class Band <

这是我的第一个问题,我正在寻找一个类似的问题,但还没有找到。我正在开始学习RubyonRails,我学习了一门课程,该课程介绍了如何使用has_许多

我创建了我的班级乐队

rails g model Band name:string website:string email:string
我也以同样的方式创作了我的课堂风格 该命令生成如下类

class Band < ActiveRecord:Base
end

a没有指定类型,但将
band.rb
文件编辑为:

class Band < ActiveRecord:Base
    has_many :genres
end
class波段

重新加载,从那以后一切都会好起来。

首先确保在您的流派模型中

belongs_to :band
还有在你的乐队模型小写你有很多这样的关系

has_many :genres
因为一个流派属于一个乐队,所以你需要在你的流派表中有一个乐队id,它将指向该流派所属的乐队

然后你可以很容易地找到乐队,找到乐队的类型。在你的控制器中,你可以找到乐队

@band = Band.find(params[:id])
并检查你之前设置的流派

@genre = @band.genres
这将为您提供该乐队的正确类型

但是,这更像是一个乐队有多个:流派,而一个流派有多个:乐队的情况。在这种情况下,您可能需要使用一个“有多个”和“属于多个”关系。您可以在rails指南中找到有关关联的更多详细信息:


如果使用has_和_belish_to_许多关系,则需要创建一个单独的表,其中每个流派和乐队将彼此指向,以便您可以轻松关联它们

新方法不会在数据库中创建实际记录,您必须在实例上调用save。要创建关联流派,可以在已存在的Band实例上调用create_流派。

需要查看更多代码。你的类型与乐队有联系吗?您收到了什么错误?您是否使用
rake db:create
rake db:migrate
@band = Band.find(params[:id])
@genre = @band.genres