0

사용자 목록을 페이지 매기기하고 아바타 옆에 "팔로우"버튼을 제공합니다. jQuery를 "Follow"양식을 제출하는 수단으로 사용하고 있습니다.레일즈 jQuery 폼 제출, 잘못된 폼이 실행 됨

"팔로우"링크를 클릭해도 의도 한 사용자가 아닌 페이지 매김 목록의 '최상위'대부분의 사용자가 따라 다니는 버그가 있습니다.

이 버그는 일부 속성 (CSS와 관련이있을 수 있음)을 공유하는 페이지 매김을받는 양식과 관련이 있다고 생각됩니다.

다음
<%= form_for(current_user.relationships.build(:followed_id => user.id), :remote => true) do |f| %> 
<div><%= f.hidden_field :followed_id %></div> 
<%= link_to "Follow", "#", :onclick=>"$('.new_relationship').submit()" %> 

는 관계 컨트롤러 '생성'이다 조치 : :

여기에 후속하여 양식

def create 
    @user = User.find(params[:relationship][:followed_id]) 
    current_user.follow!(@user) 
    respond_to do |format| 
     format.html { redirect_to :back } 
     format.js { } 
    end 
end 

어떤 도움이 많이 주시면 감사하겠습니다, 감사합니다!

답변

1

button_to 헬퍼를 사용할 수 있습니다. 양식 및 js를 직접 처리 할 필요가 없습니다. 어, 너는 눈에 거슬리는 js를 무료로 얻는다. 당신이 버튼을 사용하지 않으려면 실제로 특별히 금욕/디자인 목적을 위해 button_to를 사용하고 있지 않다 link_to ..., :method => :post

+0

<%= button_to "Follow", :remote => true, :action => "create", :id_to_follow => user.id %>

사용합니다. 확실한 link_to : method => : 게시 할 수 있습니까? 이 스택 플로우 기사를 확인하십시오. http://stackoverflow.com/questions/4964599/rails-how-do-you-submit-a-form-with-a-text-link –

+0

HTML의 링크 목적은 따라서 요청을하십시오 : method => : post는 약간의 해킹처럼 보이지만, onclick을 사용한 접근 방식은 이러한 측면에서 훨씬 더 나쁩니다. link_to 작동, 그냥 시도하십시오. 전달 된 매개 변수와 메서드를 수락하도록 올바르게 설정 한 경로와 동작을 컨트롤러에 설정해야합니다. –

+0

귀하의 답변에 감사 드리며, 문제의 본질에 관한 오해가있을 수 있습니다. 이 코드는 페이지 매김의 컨텍스트에서 적용되는 경우를 제외하고 사이트 전체에서 작동합니다. onclick은 jQuery/CSS와 토글 링 이미지를 "버튼"으로 사용하려는 올바른 접근 방식입니다. –

관련 문제