Ruby on rails 重构控制器中生成的操作代码

Ruby on rails 重构控制器中生成的操作代码,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,如果我生成一个脚手架,我会得到标准动作索引,new,show,create。。。。所有这些都包含一行,例如,like @comment = Comment.find(params[:id]) 将这条线以单独的方式放入控制器中是否有意义 def load @comment = Comment.find(params[:id]) end 这是优势吗?Thx for your time对单独的方法是,对使用before_过滤器也是 class CommentsController < App

如果我生成一个脚手架,我会得到标准动作索引,new,show,create。。。。所有这些都包含一行,例如,like

@comment = Comment.find(params[:id])
将这条线以单独的方式放入控制器中是否有意义

def load
@comment = Comment.find(params[:id])
end

这是优势吗?Thx for your time

对单独的方法是,对使用before_过滤器也是

class CommentsController < ApplicationController
  # Whitelist your before_filter like this. Or you can blacklist it with :except => []
  before_filter :load_comment, :only => [:edit, :update, :destroy, :show]

  def show
  end

  def index
    @comments = Comment.all 
  end

  def new
    @comment = Comment.new
  end

  # etc ...

  protected

  def load_comment
    @comment = Comment.find(params[:id])
  end
end
class CommentsController[]
在加载注释之前,:only=>[:编辑,:更新,:销毁,:显示]
def秀
结束
def索引
@comments=Comment.all
结束
def新
@comment=comment.new
结束
#等等。。。
受保护的
def load_注释
@comment=comment.find(参数[:id])
结束
结束

谢谢您的回复。为什么要保护它?如果我的操作中已经有了一个不同的查询,比如“@comment=comment.new”,该怎么办。前过滤器是否覆盖它?我是将方法放在动作方法之前还是放在控制器的末尾?请参阅我的编辑,了解如何将您的过滤器列入白名单,我应该首先包括白名单。至于它为什么受到保护。如果它是公共的,并且您有正确的捕获所有路由,那么
load\u comment
可以作为常规控制器操作调用。这只是预防措施。