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 回答