两个model:
class Course < ActiveRecord::Base
has_many :curriculums
class Curriculum < ActiveRecord::Base
belongs_to :course, :class_name=>"Course", :foreign_key => :course_id
关联关系,在curriculum中查询:
scope :by_joins, lambda { |sd| {:joins => [:course], :conditions => {:courses => {:charge_type =>sd}}}}
joins参数就是关联的表,conditions是条件
分享到:
相关推荐
Ruby中的块可以通过`do..end`或`{..}`定义,Proc和Lambda则可以捕获并存储这些块。Proc和Lambda之间的主要区别在于它们如何处理return语句:Proc允许返回到块的外部,而Lambda的行为更接近于传统函数,只返回块内部...
- **字符串方法**:提供了丰富的字符串操作方法,如 `split`, `join`, `replace` 等。 - **正则表达式**:用于模式匹配和字符串搜索。 **3.2 集合** - **数组**:提供了各种数组操作方法,如 `push`, `pop`, `...
Ruby是一种强大的动态编程语言,广泛应用于Web开发和脚本编写。了解并掌握一些高级和实用的编程技巧可以显著提升你的代码质量和效率。以下是从标题、描述和部分内容中提炼的21个你应该知道的Ruby编程技巧: 1. **...
7. **动态语言支持**:Java 7通过JSR 292(Method Handles and Invokedynamic)增强了对动态语言的支持,为实现类似Ruby或Python的特性提供了基础。 8. **尝试获取资源**:使用`try-with-resources`语句可以确保在...
1. **动态类型语言支持**:通过 invokedynamic 指令,JDK 1.7 支持了动态语言的实现,使得Groovy、Ruby等语言能在Java平台上更加高效地运行。 2. **Try-with-resources**:这个语法结构允许开发者更方便地管理和...
1. **多语言支持**:Java 7引入了“ invokedynamic ”指令,使得动态语言如Groovy、JavaScript和Ruby可以在Java虚拟机(JVM)上更高效地运行,提高了脚本语言的性能。 2. **try-with-resources**:这是一个语法糖,...
1. **多语言支持**:Java 7引入了对动态语言的支持,如JavaScript和Ruby,通过JRuby和Jython等项目实现。 2. **Try-with-resources语句**:这是一个新的异常处理结构,使得在finally块中关闭资源(如文件、数据库...