渲染布局存储在数据库中
在与另一个站点进行一些集成工作时,我有一个不寻常的要求,即需要在运行时创建布局。
目前我不得不求助于这样的事情:
def new
body = render_to_string 'new', :layout => false
page = add_layout(body, db.load_template)
render :text => page
end
这有点尴尬,我宁愿做这样的事情:
def new
...
render 'new', :layout => db.load_template
end
有没有更干净的方法来做到这一点?也许可以在运行时注册新布局并使用正常语法?
Doing some integration work with another site I've got the unusual requirement of needing to create the layout at runtime.
At the moment I'm having to resort to something like this:
def new
body = render_to_string 'new', :layout => false
page = add_layout(body, db.load_template)
render :text => page
end
This is a bit awkward, I'd rather do something like:
def new
...
render 'new', :layout => db.load_template
end
Is there a cleaner way to do this? Perhaps it's possible to register new layouts at runtime and use the normal syntax?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
哈!我遇到了一个可以解决这个问题的项目。查看全景。它将 Rails 视图存储在数据库而不是文件系统中。
Ha! I encountered a project that will solve just that. Check out panoramic. It stores rails views in the database instead of the filesystem.
您可以使用模块和 alias_method_chain 扩展 ActionController::Base (或 ApplicationController)来实现此功能。
You can extend ActionController::Base (or ApplicationController) with a module and alias_method_chain to make this work.