2011-11-29 53 views
2

我有简单的rails应用程序。创建,删除,编辑帖子。我需要评价这个职位。 哪里放置率函数,在模型或控制器?为什么?函数的放置

回答

5

通常这种事情发生在两个地方。您将在模型上使用rate方法,并且您将在控制器中执行rate操作。

请记住,控制器的主要功能是接收请求,加载合适的模型,根据需要调整它们并保存结果。通常这些模型将实现为此提供便利所需的功能。

在控制器,你会做这样的事情:

class ItemsController < ApplicationController 
    def rate 
    @item.rate!(session[:user_id], params[:rating]) 
    end 
end 

在模型中你有这样的事情:

class Item < ActiveRecord::Base 
    has_many :ratings 

    def rate!(user_id, rating) 
    self.ratings.create(:user_id => user_id, :rating => rating) 
    end 
end 

没有一个控制器,你不能访问模型,它必须经过这一层,没有一个模型你没有持久的数据。他们一起工作。