原文 :https://www.travisluong.com/ruby-on-rails-mountable-vs-full-engine/一个Rails Engine 本质是一个 Rails application,你可以附加到其他的rails application上提供附加功能。一个Rails Engine是一个Rails应...
原文 :https://www.travisluong.com/ruby-on-rails-mountable-vs-full-engine/
一个Rails Engine 本质是一个 Rails application,你可以附加到其他的rails application上提供附加功能。
一个Rails Engine是一个Rails应用程序,因为它遵循与“普通”Rails应用程序相同的模型视图控制器模式。
rails Engine 和通常的rails application有什么的不同呢,一个rails engine通常使用命令,$ rails plugin new my_engine --mountable 或 $ rails plugin new my_engine --full生成,
因为engines被打包作为ruby gems,所以你使用需要的gem时,在gemspec中添加而不是gemfile中,当你使用bundler时,在gemfile中使用gemspec函数将会自动加载他们,所以你必须在engine.rb中使用require引入它们,否则你会看到nomethod的错误,同时,一个虚拟的application会在你的测试目录中生成,用来测试使用,你必须拷贝整个迁移文件到你的虚拟application中,以及任何你希望使用这个engine的appliction上,幸好,engine有一个rake命令可以做这个事,rake my_engine:install:migrations
两种类型的主要不同是,mountable engine有独立的命名空间,而full engine没有,这意味着,mountable engine可以作为host application的一部分运行, 而full engine 必须集成到host applicatin中,本质上,一个full engine与host application分享Models views, controllers, helpers和路由,一个mountable engine却不分享,mountable engine有自己的layout,javascript, css文件,而full engine却没有,使用mountable engine 需要在你的host application的路由文件中 使用mount函数挂载到一个子路径下,full engine却不用看起来,一个 ountable engine适合单独的application,例如 blog,forum,一个full engine适合 添加到一个已存在的application例如 验证方案,或者权限接口,mountable engine适和与application同时使用,full engine适合与application一起使用
本文标题为:Ruby on Rails Mountable vs. Full Engine
- Swift超详细讲解指针 2023-07-08
- R语言关于二项分布知识点总结 2022-11-30
- Golang http.Client设置超时 2023-09-05
- R语言-如何切换科学计数法和更换小数点位数 2022-11-23
- Ruby的字符串与数组求最大值的相关问题讨论 2023-07-22
- R语言绘图数据可视化pie chart饼图 2022-12-10
- Ruby 迭代器知识汇总 2023-07-23
- 汇编语言程序设计之根据输入改变屏幕颜色的代码 2023-07-06
- Ruby on Rails在Ping ++ 平台实现支付 2023-07-22
- Go Web开发进阶实战(gin框架) 2023-09-06