ruby-on-rails - 功能定位

标签 ruby-on-rails

我有简单的 Rails 应用程序。创建、删除、编辑帖子。我需要评价这篇文章。 将速率函数放置在模型或 Controller 中的何处?为什么?

最佳答案

通常这种事情在两个地方都会发生。您将在模型上有一个 rate 方法,并且在 Controller 中将有一个 rate 操作。

请记住, Controller 的主要功能是接收请求、加载适当的模型、根据需要进行调整并保存结果。通常,模型将实现促进这一点所需的功能。

在 Controller 中你可以做这样的事情:

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

如果没有 Controller ,您就无法访问模型,它必须经过该层,如果没有模型,您就没有持久数据。他们一起工作。

关于ruby-on-rails - 功能定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8313696/

相关文章:

javascript - 在 rails 中跟随 javascript 字符串/转义引号有什么问题

ruby-on-rails - 创建一个根据子类的属性排序的对象数组

ruby-on-rails - 在 wicked_pdf 中显示签名板 - Rails

ruby-on-rails - Prawn 表 : Block is not executing

ruby-on-rails - Mailgun 帐户注册后很快就被禁用

ruby-on-rails - 如何清除 Sidekiq 中的所有作业?

javascript - 根据下拉列表中的选择动态初始化未保存父对象的子记录

html - 响应式设计不适用于 heroku 部署的 Rails 应用程序?

ruby-on-rails - 什么是 Capfile?以及如何在 Ruby on Rails 中正确使用它?

ruby-on-rails - Rails 什么时候响应 'transfer-encoding' 与 'content-length' ?