所以,我尝试搜索(很多 :( )并且找不到任何帮助。
我觉得这是我以前做过的事情,但我似乎无法弄清楚。
我已经安装了一个 gem(推荐,耶!),它允许我访问一堆方法(?):
user.like(电影) => true
在一个视图中,我尝试将 <%= link_to "Like", @user.like(@movie) %>... 但是,这似乎实际上只是在页面加载时运行 @user.like(@movie) ...自动设置该用户喜欢该电影。
我错过了什么?:\
非常感谢提前!
所以,我尝试搜索(很多 :( )并且找不到任何帮助。
我觉得这是我以前做过的事情,但我似乎无法弄清楚。
我已经安装了一个 gem(推荐,耶!),它允许我访问一堆方法(?):
user.like(电影) => true
在一个视图中,我尝试将 <%= link_to "Like", @user.like(@movie) %>... 但是,这似乎实际上只是在页面加载时运行 @user.like(@movie) ...自动设置该用户喜欢该电影。
我错过了什么?:\
非常感谢提前!
我猜你想要一个 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 创建一个路由。
您应该始终牢记,对于用户应该能够执行的操作,您需要在控制器中执行操作。视图总是只向用户呈现给定的状态,并提供采取行动的选项。