我不完全确定rails中私有方法的概念,以及何时以及如何使用它.有规则吗?私人与公众之间有什么区别?例如,在以下示例中,为什么在此处使用私有方法而不是其他两个方法.最好的做法是始终使用私有方法进行用户生成的输入吗?请赐教.非常感谢!
class PostsController < ApplicationController
def index
@posts = Post.all.order("created_at DESC")
end
def new
@post = Post.new
end
def create
@post = Post.new(post_params)
if @post.save
redirect to @post
else
render 'new'
end
end
def show
@post = Post.find(params[:id])
end
private
def post_params
params.require(:post).permit(:title, :body)
end
end
Run Code Online (Sandbox Code Playgroud)
在Rails ActionController上下文中,控制器类的公共方法通过Rails路由公开给Web服务器.您可以定义到类的公共方法的路由,并将它们用作控制器操作.
但是,您无法定义到私有方法的路由.它们被设计为内部帮助程序方法,无法将它们公开给Web服务器.
这导致控制器中的基本约定:将每个控制器操作定义为公共方法,为每个控制器操作定义路由,并定义与操作相对应的视图,或将每个操作链接到另一个操作或视图.将私有方法或其他类用于辅助方法或其他组件.
当然这些都是惯例.如果您确定没有人会定义到这些方法的路由或将它们暴露给客户端并不会有害(因为暴露敏感信息,创建漏洞或只是看起来很愚蠢),您可以在控制器中公开所有方法.
| 归档时间: |
|
| 查看次数: |
3705 次 |
| 最近记录: |