链接到外部URL并运行控制器方法

时间:2013-06-12 21:32:13

标签: ruby-on-rails ajax ruby-on-rails-3

我正试图了解Rails路线/控制器和ajax,我需要一些方向来帮助解决当前的挑战......

我正在渲染数据库中的链接列表,每个链接都包含一个“last_visited”字段。

作为用户,我想点击一个链接,然后在新标签页中打开它(target = _blank)。在这样做时,链接的“last_visited”字段将使用当前时间和日期进行更新。

这是我到目前为止所拥有的:

查看

%li.feed
  = link_to(visit_path(:id => feed.id), :method => :put, :target => '_blank') do
    .title=feed.title

路线

match "/feeds" => "pages#visit_feed", :as => :visit

控制器

def visit_feed
 @feed = Feed.find(params[:id])
 @feed.update_visit_date!

 respond_to do |format|
   format.html { redirect_to @feed.url }
   format.json { head :no_content }
 end
end

'last_visited'字段更新在模型中处理。

虽然这样可行,但会打开一个带有链接的新选项卡,并更新last_visited日期。锚标记就像这样呈现(注意href):

<a href="/feeds?id=7" data-method="put" rel="nofollow" target="_blank">
  // content
</a>

我正在使用控制器format.html来redirect_to,这导致(我假设)不良行为,当我“cmd +点击”时,我留在页面上的新选项卡无法在后台打开(听起来微不足道,但对于我正在构建的内容,这是一个非常常见且至关重要的用户行为。)

所以简而言之,我很想知道替代/推荐的方法......我一直在考虑使用ajax来更新last_visited字段而不是控制器/模型,这是推荐的吗?我该怎么做呢?

非常感谢任何帮助/想法/方向。谢谢你的时间。

0 个答案:

没有答案