【问题标题】:call action from another action rails to save pdfs with prawn从另一个动作rails调用动作以用虾保存pdf
【发布时间】:2011-04-08 11:08:15
【问题描述】:

我有一个用虾生成 pdf 的操作

def savepdfs
  respond_to do |format|
    format.pdf {} # Create PDF file and saves in /pdf/print.pdf.
    logger.info ":::::::::::::::::  PDF COVER PAGE CREATED  :::::::::::::::::"
  end
end

我不想向用户显示 pdf。相反,我只想从另一个动作中调用它

def mainaction
    #I want to call something like savepdfs(:format => :pdf)
end

我该怎么做?

【问题讨论】:

  • 你的第一个动作的结果是在你的第二个动作中返回?为什么不做重定向?
  • @shingara 我评论了 savepdfs(:format => :pdf ) 因为它不起作用。如果那调用了 savepdfs,我会重定向。

标签: ruby-on-rails ruby pdf prawn prawnto


【解决方案1】:

将其包装为私有控制器方法

def savepdfs
  respond_to do |format|
    format.pdf { generate_pdf } # Create PDF file and saves in /pdf/print.pdf.
    logger.info ":::::::::::::::::  PDF COVER PAGE CREATED  :::::::::::::::::"
  end
end

def mainaction
  generate_pdf
end

private

def generate_pdf
  # Create PDF file and saves in /pdf/print.pdf.
end

【讨论】:

  • 如何创建pdf并从generate_pdf保存?
  • 与您的操作方式相同
  • 从控制器工作生成 pdf 。我虽然应该只从视图中完成。谢谢。
【解决方案2】:

这是一个 XY 问题*。你不想调用另一个动作,你想把业务逻辑放在它所属的模型中。

* http://www.perlmonks.org/index.pl?node_id=542341

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-14
    • 2018-06-12
    • 2019-05-18
    相关资源
    最近更新 更多