2

我正在尝试使用 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 等)???

4

3 回答 3

1

试一试:http ://www.liquidmarkup.org/

于 2010-05-09T09:26:23.650 回答
0

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

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

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

于 2010-05-23T13:50:32.677 回答
0

Rails核心开发人员Sven Fuchs 提供了安全模式,让您更加安全。

像液体(在我看来很痛苦)或小胡子这样的模板引擎可能比 erb 更容易学习和应用。

于 2010-05-09T06:44:13.573 回答