- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我有一个 Controller 操作,用于执行产品列表、分页和一些过滤器,例如类别(来自下拉列表)、标题(来自文本字段)、库存(来自复选框)这是我的 Controller :
class ProductsController < ApplicationController
def index
@products = Product.where(active:1).where("title LIKE ?","%#{params[:title]}%")
if params[:stock]
@products=@products.where("stock = 0")
end
if params[:category]
@products=@products.where("category_id LIKE ?","#{params[:category]}")
end
@products= @products.paginate(:page => params[:page])
@categories= Category.all
end
我的模型是:
class Product < ActiveRecord::Base
belongs_to :category
...some validations...
end
为了让我的 Controller 变得更薄,我可以做些什么改变?谢谢
最佳答案
模型
class Product < ActiveRecord:::Base
scope :active, where(active: 1)
def self.with_stock(stock=nil)
return where(stock: 0) if stock
self
end
def self.categorized(category=nil)
return self.where(category: category) if category
self
end
def self.titled(title=nil)
return self.where("title LIKE ?", 'title') if title
self
end
def self.list(params)
title = params[:title]
category = params[:category]
page = params[:page]
self.titled(title).with_stock(stock).categorized(category)
.paginate(page).active
end
end
Controller
def index
@products = Product.list(params)
end
不要在 Controller 中运送类别。在模板/部分中进行。仅来自 Controller 的一个实例变量。
关于ruby-on-rails - 小型 Controller 上的代码重构(瘦 Controller 胖模型),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20610446/
我很好奇针对包含 armv7 和 i386 代码(用于模拟器)的通用(胖)库构建是否会增加应用程序分发包的大小,或者设备的构建过程是否会删除 i386 内容并进行调试信息? 最佳答案 如果我没记错的话
我正在尝试将我的对象打包为 64 字节(自行开发的属性),并且我需要保存 getter 和 setter 成员函数。 我真的很喜欢 std::function 但太大了: sizeof(std::fu
如果传递库不是 packaged使用 JAR 任务: By default, jar task in gradle builds an executable jar file from your pr
在Sublime Text编辑器中无法有效搜索问题。当前正在使用该编辑器的最新版本。 在用这些大块命中Ctrl + Shift + FI后,我想导航到下一个文件(在图像1/138中),但我不知道如何操
我正在重新设计旧应用程序——更确切地说是设计新应用程序,我想利用旧应用程序的某些部分在未来变得更有用和可扩展。 旧应用程序是一个厚桌面应用程序,用于处理在文件服务器上共享的数据。 (它使用 DBF 数
我无法为使用 Xcode 10.2+ 构建的通用(胖)框架的模拟器(设备编译成功)编译应用程序。应用程序使用来自 Objective-C 代码的框架。当从为设备构建切换到为模拟器构建时,Xcode 停
我有一个 fat jar 子,我试图在其中获取 Kotlin 的实例 ScriptEngine . 出于调试目的,我遍历可用的脚本引擎工厂并获取引擎。 val scriptEngineManager
我是一名优秀的程序员,十分优秀!