1

我需要在 DataTables 报告中包含内部链接。因此我必须从 Model#as_json 返回报告数据,例如:

class Error < ActiveRecord::Base

  include ActionView::Helpers::UrlHelper # provides link_to
  include ActionController::UrlWriter # provides *_path

  def as_json(options={})
  {
    :date => self.created_at,
    :level => self.level,
    :ip => self.ip,
    :title => truncate(self.title, :length => 100),
    :show => link_to('Show', error_path(self)),
    :hide => self.handled ? "" : "#{link_to 'Hide', handle_error_path(self)}"
  }
end

...

弄清楚我需要包括什么是多么努力。但现在我收到错误:“无法将字符串转换为哈希”

这是因为 'link_to' 使用了 'url_for',这是 UrlHelper 和 UrlWriter 都拥有的一种方法,但实际上行为不同。

所以我束手无策。如果有人可以帮助我弄清楚如何做到这一点,或者告诉我如何在不破坏 MVC 的情况下满足要求,我将非常感激。

4

2 回答 2

0

我将用最好的解决方案来跟进我自己的问题:使用 json_builder gem 并将您的 json 保留在它所属的视图中:)

于 2012-06-06T21:37:01.743 回答
0

尝试手动创建链接:

:hide => self.handled ? "" : "<a href='/handle_error?params=something'>Hide</a>"
于 2012-06-06T17:32:37.340 回答