Rails 中的约定优于配置?

Aks*_* Ak 0 ruby ruby-on-rails

我是 ruby​​ on Rails 的新手。我正在查看它的文档,它说“约定优于配置”。这是什么意思?

spi*_*ann 6

Ruby on Rails 可以为您做很多事情,而无需告诉 Rails 如何做。但是这个 \xe2\x80\x9cmagic\xe2\x80\x9d 仅当您遵循某些准则时才有效。\xe2\x80\x9cConvention Over Configuration\xe2\x80\x9d 表示只要遵循一定的约定,就不需要添加额外的配置。

\n

例如,当User您的应用程序中有一个模型时,Rails 会假定它是在app/models/user.rb. 如果是这种情况,那么您在使用之前不需要需要该文件,Rails 的自动加载功能将能够为您做到这一点。Rails 会假设用户记录将存储在名为 的数据库表中users。如果是这种情况,则不需要额外的配置,Rails 将能够加载这些记录。但如果记录存储在不同的表中,那么您必须显式告诉 Rails 新表名称。

\n

还有更多这样的例子:

\n
    \n
  • config/routes.rb当您遵循特定的命名约定时,定义的路由链接到特定的控制器方法。如果不这样做,那么您必须配置什么路由映射到什么控制器和什么方法。
  • \n
  • Rails 根据当前控制器和渲染方法名称选择某些视图,但这仅在您正确命名所有文件时才有效。
  • \n
\n

因此,我的建议是:不要试图违背 Rails 约定。只有当您遵循 Rails 命名约定时,Rails 魔法才会发挥作用。使用建议的不同名称是可​​能的,但随后您必须进行大量额外的配置。

\n