3

David Francisco의 rails feedback plugin과 협력하고 있습니다. 한 가지를 제외하고는 플러그인이 정상적으로 작동합니다. 피드백 양식이 사용 된 페이지의 URL을 데이터베이스에 제출하려면 피드백 양식이 필요합니다. 누구든지이 작업을 수행하는 방법을 알고 있습니까? 현재 전송되는 정보에 추가하여, 현재의 URL을 보낼 필요가Rails 의견 양식 : 현재 페이지의 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 항상 '/ 피드백'형태의 URL입니다.

, 감사합니다 알렉산드라

답변

5

컨트롤러에서 request.referer을 사용하여 작업을 호출 한 페이지의 경로를 가져올 수 있습니다. (귀하의 경우 /feedbacks/new을에)

URI(request.referer).path 

내가 어떤 사람들은 request.fullpath 제안 볼 수 있지만 이것은 실제로 요청을 처리있어 작업의 경로 : request.referer 전체 URL을 반환하지만 당신은 URI 모듈을 구문 분석 할 수 양식이 제출 된 경로가 아닙니다.

1

feedback_index_path 항상 같은 일을 반환하는 경로 도우미 방법이다. 당신의 경우에 /feedback. request.fullpath가 제대로 작동하지 않는 경우

Look here for info on accessing the current URL in both Rails 2 and 3.

+0

이 게시물을 조금 더 일찍 보았습니다. 양식 내에서 request.fullpath를 시도 할 때 "/ feedback/new"를 얻습니다. 어쩌면 경로가 양식 외부의 어딘가에 정의되어야합니까? – Alexandra

+0

여기에서 무엇을 기대하십니까? 모범이 있습니까? – jdl

+0

물론, 의견 표를 남길 때 http : // localhost : 3000/projects 페이지에 있다고 가정 해 보겠습니다. 피드백 양식을 제출할 때 "/ projects"를 데이터베이스에 저장하고 싶지만 대신 "/ feedback/new"가 저장됩니다. – Alexandra

1

, 당신은 페이지의 데이터 속성 페이지의 URL을 저장, 빠른 해킹을하고, 해당 속성에서 jQuery를에 의해 현재의 URL을 얻을 제출할 수 있습니다. 하지만 해킹 일뿐입니다.

의견 보내기 양식을 어떻게 작성합니까?

관련 문제