我正试图了解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字段而不是控制器/模型,这是推荐的吗?我该怎么做呢?
非常感谢任何帮助/想法/方向。谢谢你的时间。