尝试获取列表嵌套路由的索引时出错 Rails "unexpected tIVAR"
Error when trying get index of list nested route Rails "unexpected tIVAR"
我想获取属于某个类别的所有评论的列表。我在尝试获取 JSON 文件(这是一个 API 应用程序)中所有评论的列表时遇到错误:“/Code/Rails/videogame_reviews/app/controllers/reviews_controller.rb:6: 语法错误,意外tIVAR,期待 '(' @reviews = @category.@game.reviews ^".
有人可以解释为什么会失败吗? @reviews = Reviews.all 正在运行,但会显示所有评论。
这是 ReviewsController
def index
@game = Game.find(params[:game_id])
@category = Category.find(params[:category_id])
@reviews = @category.@game.reviews
respond_to do |f|
f.html
f.json { render json: { category: @category, game: @game, reviews: @reviews} }
end
end
我从正在运行的 GamesController 索引复制了一份
def index
@category = Category.find(params[:category_id])
@games = @category.games
respond_to do |f|
f.html
f.json { render json: { category: @category, games: @games } }
end
end
这是评论模型
class Review < ActiveRecord::Base
belongs_to :game
validates_presence_of :comment
end
这是游戏模型
class Game < ActiveRecord::Base
belongs_to :category
has_many :reviews
validates_presence_of :title, :category
end
这是类别模型
class Category < ActiveRecord::Base
validates_presence_of :name
has_many :games
end
这是评论的路线
resources :categories do
resources :games do
resources :reviews
end
end
@reviews = @category.@game.reviews
的语法不正确。我猜你想要某款游戏的所有评论?如果是这样,请尝试以下操作:
Review.joins(games: :category).where(categories: {id: @category.id}, games: {id: @game.id})
行,
@reviews = @category.@game.reviews
不会工作,因为@game 不是类别方法。 @game 是一个变量。您可以使用上述答案中的 activeRecord 查询来获取属于特定类别和游戏的所有评论。
@reviews = Review.joins(games: :category).where(categories: {id: @category.id}, games: {id: @game.id})
我想获取属于某个类别的所有评论的列表。我在尝试获取 JSON 文件(这是一个 API 应用程序)中所有评论的列表时遇到错误:“/Code/Rails/videogame_reviews/app/controllers/reviews_controller.rb:6: 语法错误,意外tIVAR,期待 '(' @reviews = @category.@game.reviews ^".
有人可以解释为什么会失败吗? @reviews = Reviews.all 正在运行,但会显示所有评论。
这是 ReviewsController
def index
@game = Game.find(params[:game_id])
@category = Category.find(params[:category_id])
@reviews = @category.@game.reviews
respond_to do |f|
f.html
f.json { render json: { category: @category, game: @game, reviews: @reviews} }
end
end
我从正在运行的 GamesController 索引复制了一份
def index
@category = Category.find(params[:category_id])
@games = @category.games
respond_to do |f|
f.html
f.json { render json: { category: @category, games: @games } }
end
end
这是评论模型
class Review < ActiveRecord::Base
belongs_to :game
validates_presence_of :comment
end
这是游戏模型
class Game < ActiveRecord::Base
belongs_to :category
has_many :reviews
validates_presence_of :title, :category
end
这是类别模型
class Category < ActiveRecord::Base
validates_presence_of :name
has_many :games
end
这是评论的路线
resources :categories do
resources :games do
resources :reviews
end
end
@reviews = @category.@game.reviews
的语法不正确。我猜你想要某款游戏的所有评论?如果是这样,请尝试以下操作:
Review.joins(games: :category).where(categories: {id: @category.id}, games: {id: @game.id})
行,
@reviews = @category.@game.reviews
不会工作,因为@game 不是类别方法。 @game 是一个变量。您可以使用上述答案中的 activeRecord 查询来获取属于特定类别和游戏的所有评论。
@reviews = Review.joins(games: :category).where(categories: {id: @category.id}, games: {id: @game.id})