Re: [问题] Rails中AR Associations的单复数问题

楼主: aquarianboy (我是没牌的营养师!)   2015-02-28 15:57:55
※ 引述《danny8376 (钓到一只猴子@_@)》之铭言:
: ※ 引述《Pagan (test)》之铭言:
: : 全新新手自己看网络资料自学中 (Ruby 2.1.5 on Rails 4.2.0)
: : 想请教请教, 问题比较初级, 请多包涵
: : 一直看不是很懂ActiveRecord某些点
: : 第一)
: : 对belongs_to的部分是看懂了, 依照惯例会对应到class的名称
: : 但我有个部分不太懂, 假如是has_many 而刚好复数的字眼不是单纯加上s的呢?
: : 例如 (看国外范例讲的 但没看懂为什么)
: : 在article.rb中
: : belongs_to :category #这部分理解了惯例
: : 在category.rb中
: : has_many :categories #这部分不理解为何Rails会知道对应到Category class呢?
: Ruby中有单复数名词的转换对应
: 这部分其实有不少错误该不该修的issue XDD
: 总之就是有个转换表/公式在
: 所以他知道
: (虽然有些错误在www)
补充一下,请打开 rails console :
Loading development environment (Rails 4.2.0)
>> "mouse".pluralize
=> "mice"
>> "people".singularize
=> "person"
>> "whatffffs".pluralize
=> "whatffffs"
>> "whatffffss".pluralize
=> "whatffffsses"
rails 的字串有 singularize / pluralize 方法来帮你做单/复数的变化
但英文有很多不规则的复数变化,若发现有错或看不顺眼
可直接打开 config/initializers/inflections.rb 来新增或修改单复数的变化
另外:
>> "hello_world".camelize
=> "HelloWorld"
>> "ProductCategory".underscore
=> "product_category"
rails 的字串有 camelize / underscore 方法可以用,把这两招组合起来:
>> "categories".singularize.camelize
=> "Category"
大概是这样 XD
楼主: aquarianboy (我是没牌的营养师!)   2015-02-28 16:04:00
作者: Pagan (test)   2015-02-28 16:30:00
感谢 太神奇了 居然有这种规则可以使用

Links booklink

Contact Us: admin [ a t ] ucptt.com