Is it possible to store erb templates in database? How?
问题:
回答1:
Sure it is.
But I think, this is not the best solution if you only need some pages with same layout and different content.
If you really want ERBs saved in database, create some model with your ERBs saved in. Then you can call in controller code like this, to render that ERB.
erb = ERB_model.find(...)
@some_model_data = SomeModel.find(...)
erb = ERB.new(erb.source)
render :text => erb.result, :layout => true (or another)
Watch ERB.new parameters.
回答2:
I found better way:
def show
@modal_popup = ModalPopup.find(params[:id])
# erb = ERB.new(@modal_popup.content)
# render :text => erb.result, :layout => false
render :inline => @modal_popup.content, :layout => false
end
I use this action inside iframe or render the action from another views.
回答3:
I'm also working on an almost same concept as you are working on. I also need my clients to create their own web sites
Initially i also had the idea of saving all the erbs in the database, but later i have given up that idea as even though it works for plain text pages, when you want to render components and partials it will not be easy.
and mainly i had problems on saving layout.erb files in the database
so i decided to go in a way that page will construct upon the subdomain
cheers, sameera