我正在使用印象派 gem 来记录页面浏览量。
假设我有一个 Question 模型和一个 Answer 模型:
问题.rb:
class Question< ActiveRecord::Base
has_many :answers
is_impressionable
答案.rb:
class Answer< ActiveRecord::Base
belongs_to :question
is_impressionable
在 questions\show.html.erb 中,我有一个答案列表。
当用户将鼠标悬停在答案上时,他们会看到 2 个链接出现:详细信息和转到。
详细信息链接仅打开答案显示页面(提供更多详细信息)并记录显示印象并正常工作:
answers_controller.rb:
impressionist(@answer)
转到页面是骗人的。当用户点击链接时:
<%= link_to "Go to", :class => 'answer_link', :remote=>:true,
:data=>{outval: answer.type_url, cuid: answer.id.to_s, refval: user_question_path(@question.user, @question), txtval: answer.img_url} do %>
<span class="small_image">
<%= image_tag(answer.img_url, :alt => 'go to answer', :class =>'img_answer') %>
</span>
<% end %>
,我运行以下 jQuery 片段:
$('.answer_link').click (->
url_val=''
url_val = "http://api.somewebservice.com/api/click?key=abc123"
url_val += "&out=" + $(this).data('outval')
url_val += "&loc=" + $(this).data('refval')
url_val += "&cuid=" + $(this).data('cuid')
url_val += "&ref=" + $(this).data('refval')
url_val += "&txt=" + $(this).data('txtval')
window.open url_val
)
这可以正常工作并运行 Web 服务,然后在新窗口中打开返回的外部链接。
我的问题是试图将此外部点击捕获为印象。
做这个的最好方式是什么?目前,当我单击外部链接时,问题控制器会运行显示操作。
具体问题#1:这个“似乎”是正确的,因为我不想去任何地方(另一个窗口已经打开了外部链接)。使用问题控制器是否正确,显示操作,如果 params[:id]=="Go to" 那么就留在原地。
具体问题#2:如果这是正确的,那么有没有办法向印象派发送一个:action_name(我会发送“go to”而不是现在发送的默认“show”:
具体问题#3:如果不正确,那我该怎么办?也许去 Answers 控制器,去一个自定义的“go_to”?
TIA