Rails jQuery Form Submit, неверная форма выполняется - PullRequest
0 голосов
/ 08 мая 2011

Я разбиваю список пользователей на страницы и предоставляю кнопку «Подписаться» рядом с их аватаром. Я использую jQuery в качестве средства отправки формы «Follow».

Я обнаружил ошибку, из-за которой, независимо от того, по какой ссылке "Follow" нажата ссылка, за ним следует "самый верхний" большинство пользователей в списке, а не предполагаемый пользователь.

Я подозреваю, что эта ошибка может быть связана с формами, которые разбиваются на страницы, разделяя некоторый атрибут, возможно, связанный с 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 Ответ

1 голос
/ 08 мая 2011

Вы можете использовать button_to helper для этого. Вам не нужно иметь дело с формами и JS напрямую. Ну, и вы получите ненавязчивый JS бесплатно.

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

, если вы не хотите использовать кнопку, используйте link_to ..., :method => :post

...