困惑于铁轨有很多关系

时间:2011-03-23 23:47:08

标签: ruby-on-rails routing

好的,所以我正在构建这个rails应用程序。我需要餐馆和菜肴之间的关系。

所以餐馆has_many:菜肴和菜属于餐馆问题是该模型被称为菜,所以它被称为:菜..这是重要的还是名称需要(model_name)+ s所以菜或者这是完全的无关紧要,这种关系在我的控制器中就像我在想的那样......

3 个答案:

答案 0 :(得分:1)

Rails有许多内置的复数和规则。菜以sh结尾,所以复数就是菜肴,这就是你应该使用的。

如果启动rails控制台,则可以使用以下命令检查:

'Dish'.pluralize#=>'菜肴'

如果没有得到预期的结果,你可以在config / initializers / inflections.rb中定义你自己的复数形式(编辑文件时应该有例子)

答案 1 :(得分:1)

即使复数不起作用,您也可以手动指定它:

has_many :dishes, :class_name => 'Dish'

或者你可以给这个协会一个完全不同的名字:

has_many :recipients, :class_name => 'User'

答案 2 :(得分:0)

是的,Rails可能会正确地将dish的复数形式改为dishes

require 'active_support/all'

"dish".pluralize
# => "dishes"