Ruby on rails Rails可以在控制器的实例方法中分配类变量吗?

Ruby on rails Rails可以在控制器的实例方法中分配类变量吗?,ruby-on-rails,Ruby On Rails,在Rails中,我可以创建一个可以在不同实例方法之间共享的类变量吗?尽量避免不必要的电话。抱歉,伙计们,在最后一分钟从另一个开发者那里接管了这个项目。我已经两年没有编写Rails了,很高兴能重新开始 下面是示例代码: class Api::VideoEpisodesController < Api::ApiController # GET /video_episodes # GET /video_episodes.json def index # can I shar

在Rails中,我可以创建一个可以在不同实例方法之间共享的类变量吗?尽量避免不必要的电话。抱歉,伙计们,在最后一分钟从另一个开发者那里接管了这个项目。我已经两年没有编写Rails了,很高兴能重新开始

下面是示例代码:

class Api::VideoEpisodesController < Api::ApiController

  # GET /video_episodes
  # GET /video_episodes.json
  def index
    # can I share @@video_episodes with the set_video_episode method?
    # or just @video_episodes = VideoEpisode.where(season_number: params[:season_number]) because can't do what I intend?
    @@video_episodes = VideoEpisode.where(season_number: params[:season_number])
  end


  # GET /video_episodes/1
  # GET /video_episodes/1.json
  def show
    set_video_episode
  end

  private
    # Use callbacks to share common setup or constraints between actions.
    def set_video_episode
      # would I be able to access @@video_episodes from the index method or
      # is the best way to go instance variable: 
      # @video_episodes = VideoEpisode.where(season_number: params[:season_number])
      # @video_episode = @video_episodes.find(params[:id])
      @video_episode = @@video_episodes.find(params[:id])
    end

end

您最好在Rails 5之前设置before_操作或before_过滤器

class Api::VideoEpisodesController < Api::ApiController
  before_action :set_video_episode, only: [:index, :show]    

  def index
  end

  def show
  end

  private
  def set_video_episode
    @video_episode = VideoEpisode.find(params[:id])
  end

end
现在您可以在索引和显示操作中访问@video_插曲