gpt4 book ai didi

ruby-on-rails - ruby on rails 关系不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 17:44:16 26 4
gpt4 key购买 nike

我正在尝试访问两个模型之间的所有关系:Serie 有多个类别,多个类别可以在不同的系列中。是多对多关系。

我尝试执行以下操作:

class SeriesController < ApplicationController

def category
@category = params[:category]
@series = []

Serie.all.each do |serie|
@serie.categories.all.each do |cat|
if @cat.category == @category
@series << @serie
end
end
end
end

end

Rails 抛出异常:

undefined method `categories' for nil:NilClass

模型如下:

class Serie < ApplicationRecord
has_many :types
has_many :categories, through: :types
end

class Type < ApplicationRecord
belongs_to :serie
belongs_to :category
end

class Category < ApplicationRecord
has_many :types
has_many :series, through: :types
end

class CreateCategories < ActiveRecord::Migration[5.1]
def change
create_table :categories do |t|
t.string :category
t.timestamps
end
end
end

class CreateTypes < ActiveRecord::Migration[5.1]
def change
create_table :types do |t|
t.references :serie, index: true
t.references :category, index: true
t.timestamps
end
end
end

我不知道为什么这不起作用。

有什么想法吗?谢谢。

最佳答案

改变

Serie.all.each do |serie|
@serie.categories.all.each do |cat|
if @cat.category == @category
@series << @serie
end
# ...

Serie.all.each do |serie|
serie.categories.all.each do |cat|
if cat.category == @category
@series << serie
end
# ...

因为 block 中定义了局部变量seriecat,但没有实例变量@serie@cat

关于ruby-on-rails - ruby on rails 关系不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44097426/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com