1

我正在尝试为我的控制器中的“阅读更多”链接创建一个方法,它只会计算点击次数,即除此之外什么都不做。我正在使用印象派gem 来计算印象,这一切都很好,但我想计算我的“阅读更多”链接上的点击次数,并且由于“阅读更多”链接只是 jQuery,因此没有其他控制器方法为他们。

这就是我到目前为止所得到的,我只需要发送点击结果而不离开或重新加载页面。

def read_more(a)
  @article = Article(a)
  impressionist(a)
end

单击链接时出现此错误:

ActiveRecord::RecordNotFound (Couldn't find Doc with id=19)

何时应该Article使用 ID 19 查找。

任何想法都会有很大的帮助。干杯!

4

4 回答 4

1

您可以通过以下方式呈现一些任意文本:

render(:text => @document.number_of_impressions) and return

但我可能只是将其包装在一些 JSON 中并返回:

data = {:impressions => 74}
render(:json => data) and return

通过使用 JSON,您可以选择稍后返回更多数据,如果您也需要的话。

于 2012-12-14T00:32:47.117 回答
0

添加

@document.increment!(:number_of_impressions)

到您的控制器。

如果您不想在增加值时保存文档,只需删除increment.

于 2012-12-14T00:46:45.660 回答
0

尝试

render :nothing => true
于 2012-12-14T00:49:05.487 回答
0

我想出了答案,如果其他人遇到类似的问题。

def read_more
  @article = Article.find(params[:id])
  impressionist(@article)
  render :json => "Read."
end

显然你不能在控制器方法中有参数。

于 2012-12-17T01:56:16.690 回答