0

私の Rails アプリケーションでは、特定のユーザーが特定の投稿を表示すると、そのユーザーを読者リストに追加します。

PostsController#Show

@post = Post.find(params[:id])
if (current_user)
  @post.reader_links.create(reader_id: current_user.id)
end

ただし、javascript と ajax リクエストを使用して、クライアント側からこれを実装したいと考えています。ユーザーが特定のフォームに入力したとき (キーを押したとき) にのみユーザーがリストに追加されるように、この機能はわずかに変更されます。

したがって、元のコードはposts/show.erb.htmlの次のコードに置き換えられます。

function typeCatch(){
  $(this).off("keypress",typeCatch)//remove handler
  //I WANT TO ADD THE USER TO THE LIST AT THIS POINT
}

$("#field_id").on("keypress",typeCatch)

元の機能を JavaScript で実装し、ajax リクエストを介して投稿するには、助けが必要です。どんな助けでも大歓迎です。

4

1 に答える 1

1

この行の何か:

# on a controller
def update_links
  @post = Post.find(params[:id])
  if (current_user)
    @post.reader_links.create(reader_id: current_user.id)
  end
end


// on your javascript
function typeCatch(){
  $(this).off("keypress",typeCatch)//remove handler
  $.post('/path/to/controller/post_id/action')
 }

 $("#field_id").on("keypress",typeCatch)

JavaScript は、新しいアクションの答えであってはならず、新しいリーダー リンクを作成するイベントをトリガーするページにある必要があることに注意してください。

自分が何をしているのかわからない場合は、@FlufflyJack が質問にコメントしたリンクを読むことをお勧めします

于 2013-04-14T03:00:34.863 に答える