0

所以,我尝试搜索(很多 :( )并且找不到任何帮助。

我觉得这是我以前做过的事情,但我似乎无法弄清楚。

我已经安装了一个 gem(推荐,耶!),它允许我访问一堆方法(?):

user.like(电影) => true

在一个视图中,我尝试将 <%= link_to "Like", @user.like(@movie) %>... 但是,这似乎实际上只是在页面加载时运行 @user.like(@movie) ...自动设置该用户喜欢该电影。

我错过了什么?:\

非常感谢提前!

4

1 回答 1

0

我猜你想要一个 LikesController 来处理这样的事情。然后你可以远程链接到创建动作,在这个创建动作中你可以做你想做的事情:

class LikesController < ApplicationController
  def create
    # assuming you have some method to get you the current_user
    # and assuming you just want to like movies
    movie =  Movie.find_by_id(params[:id])
    current_user.like(movie) if movie  
    # maybe check for success and return some meaningfull message
  end
end

然后在视图中您可以执行以下操作:

<%= link_to "Like", likes_path(@movie), remote: true %>

这应该触发类似。

不要忘记在 routes.rb 中为 LikesController 创建一个路由。

您应该始终牢记,对于用户应该能够执行的操作,您需要在控制器中执行操作。视图总是只向用户呈现给定的状态,并提供采取行动的选项。

于 2013-03-15T09:40:26.307 回答