5

我正在使用 David Francisco 的rails 反馈插件。该插件工作正常,除了一件事 - 我需要反馈表向数据库提交使用反馈表的页面的 url。有谁知道如何做到这一点?

除了当前发送的信息之外,还需要发送当前 url 的视图:

<h4>Feedback</h4>
<p>Please leave us feedback, it's really appreciated.</p>

<%= form_for @feedback, :as => :feedback, :url => feedback_index_path, :html => { :id => "feedback_form" } do |f| -%>
  <%= f.hidden_field 'user_id', :value => current_user.id %>
  <% unless @error_message.blank? %>
  <p class="error">
    <%=h @error_message %>
  </p>
  <% end %>
  <p>
    <%= f.label 'subject' %>
    <%= f.select 'subject', ['Problem', 'Suggestion', 'Question', 'Other'] %>
  </p>
  <p>
    <%= f.label 'comment' %><br />
    <%= f.text_area 'comment', :rows => 10, :cols => 30 %>
  </p>
  <p><%= f.submit 'Send' %></p>
<% end -%>

目前,feedback_index_path 始终是“/feedback”,即表单的 url。

谢谢你,亚历山德拉

4

3 回答 3

6

您可以request.referer在控制器中使用来获取调用您的操作的页面的路径。request.referer 返回一个完整的 url,但您可以使用模块解析它URI

URI(request.referer).path

我看到有人建议request.fullpath,但这实际上是处理请求的操作路径(在您的情况下/feedbacks/new),而不是提交表单的路径。

于 2012-09-20T19:04:38.953 回答
1

feedback_index_path是一个总是返回相同内容的路由辅助方法。在你的情况下/feedback

在此处查看有关在 Rails 2 和 3 中访问当前 URL 的信息。

于 2012-09-20T03:03:07.243 回答
1

如果 request.fullpath 没有正常工作,您可以快速破解,将页面 url 存储在页面的数据属性中,并在提交时通过 jQuery 从该属性中获取当前 url。但这是一个 hack,只是为了让它工作。

顺便说一句,您如何呈现反馈表?

于 2012-09-20T18:58:25.893 回答