在Ruby on Rails中,为什么有时候在控制器中,它是复数,有时它是单数的?

时间:2017-04-26 06:20:20

标签: ruby-on-rails ruby

class MoviesController < ApplicationController
  def index
    @movies = Movie.all
  end

  def show
    @movie = Movie.find(params[:id])
    @actors = @movie.actors
  end
end

如上所示,在索引操作中,使用了@movies,但在show动作中,使用了@movie。如何确定它是复数还是单数?

4 个答案:

答案 0 :(得分:3)

@movies@movie都是您选择如何定义的实例变量。在您的示例中,@movies被分配给模型中的整个电影集合,因此通常会为其分配一个复数变量。 @movie被分配给一个记录,因此它通常被赋予一个单一变量。

您可以根据需要为实例变量命名,但Rails非常赞成约定优于配置。

答案 1 :(得分:1)

添加到@ Dithanial的答案,正如您在单击show action时所熟悉的那样,仅显示该特定记录。所以在下面的代码片段中:

&&

实例变量@movie根据它的id找到特定项目并显示内容。

答案 2 :(得分:0)

一般来说,在数组的情况下使用复数,在单个对象的情况下使用单数。

答案 3 :(得分:0)

在索引中 - 您将获得所有电影,以便列出所有电影。

在其他控制器方法中 - 您通常会编辑单部电影

@movies vs @movies实际上并不重要。您可以将其命名为@banana。但是,有很多案例,如文件名(模型=单数,控制器=复数)和活动记录关系(参考),其中多个确实重要