首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将Rails实体渲染为文件

将Rails实体渲染为文件
EN

Stack Overflow用户
提问于 2014-07-30 22:35:42
回答 1查看 39关注 0票数 0

我有一个在Rails中似乎很难解决的问题。

考虑有一个包含许多Pages的实体Book,并认为这个Pages有一个包含(听起来可能很奇怪)文本的text属性。更准确地说,它是HTML码,用户在访问pages/some_page_id/show时通常会看到这个文本。取而代之的是,当用户访问books/some_book_id/show时,他们会看到一本书的所有页面的“索引”。

现在考虑我想让用户“下载”一本书。这本书将以zip的形式下载,其中每个页面都包含一个HTML文件。

我对大多数文章都很满意,只有一个例外:当调用BooksController方法时,设法在文件上呈现一个Page

我实际想出的是BooksController/show中的这一行

代码语言:javascript
复制
def show
  if params[:download]
   @book.pages.each do |p|
     content = render_to_string(:controller => "pages", :action => "show", :page_id => p.id)
     File.open(file_name_from_book_name_and_page_number) do |f|
      f.write(content)
     end
   end
 end

这会导致每个页面都有一个文件...但它的内容是用户在没有任何params[:download]的情况下调用BooksController/show时所看到的超文本标记语言的内容!也就是说,实际调用的不是以页面id作为参数的PagesController/show操作……

我怎样才能做到这一点呢?

提前谢谢你!

EN

回答 1

Stack Overflow用户

发布于 2014-07-30 23:15:06

我不认为参数散列被传递给render_to_string方法。

尝试此答案How to pass variables to render_to_string?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25039611

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档