限制ERB代码中的访问权限

时间:2010-05-09 00:41:24

标签: ruby-on-rails ruby content-management-system erb

我正在尝试使用ERB构建CMS。有没有办法可以让ERB代码以只读方式访问您的模型?例如,我希望能够在我的模型上加载任何信息(Model.all,Model.find_by_slug,Model.find_by_name,Model.other_model.name等...),但我不希望能够更改此数据。你能否禁止ERB执行会导致数据库更改的命令(Model.save,Model.update,Model.delete,Model.destroy等)???

3 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

Rails核心开发人员Sven Fuchs safemode让你变得更安全,更安全。

像液体一样的模板引擎(在我看来很痛苦)或mustache可能比erb更容易学习和申请用户。

答案 2 :(得分:0)

尝试使用:在查找模型时使用readonly标志:

@posts = Post.find(:all, :readonly => true)

如果你试图保存它 - 将抛出ReadOnlyRecord异常。但我也建议使用Liquid作为模板,因为用户对ERB模板中的应用程序变量没有限制访问权限。