很早就听说有Web敏捷开发这回事,最近终于闲了下来,可以利用业余的时间学些新东西,入眼的第一个东东自然是Ruby on Rails。Rails中的核心要素也就是MVC、ORM这些了,因此关于Rails的学习也就自然是这些。
今天面对的是这样一个问题ORM问题:客户的公司有多个组,而一个组中自然包含有多个员工。客户的想法是在建立组的时候就直接能够把人员加入到组中,而不是“建组->加人员”这样一个流程。
不多说了,还是直接上解决方案吧
1. 新建工程
rails new demo
2.建立Group
rails g scaffold group name:string description:text
3.建立员工employee
rails g model employee name:string birthday:date group:belongs_to
执行完上述命令后
group和employee两个类的代码如下:
/model/group.rb
class Group < ActiveRecord::Base end
/model/employee
class Employee < ActiveRecord::Base belongs_to :group end
4.修改group的代码,如下:
class Group < ActiveRecord::Base has_many :employees #复数 end
此外,为了实现一次创建Group和多个Employee,还需要打开Group的嵌套属性,因此
class Group < ActiveRecord::Base has_many :employees #复数 accepts_nested_attributes_for :employees end
以上就完成了Model的开发工作,接下来修改Group的控制器
5. 修改Group的控制器