Rails:视图中的方法

时间:2013-03-15 07:39:53

标签: ruby-on-rails ruby methods instance

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

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

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

  
    

user.like(电影)     =>真

  

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

我错过了什么? :\

提前多多谢谢!

1 个答案:

答案 0 :(得分: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 %>

这应该触发之类的。

不要忘记在LikesController的routes.rb中创建路由。

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