加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – Rails Generator:根据已有的rails文件生成文

发布时间:2020-12-17 03:20:15 所属栏目:百科 来源:网络整理
导读:我想创建一个基于应用程序中现有文件(例如视图或控制器)创建文件(和目录等)的生成器.所以,如果我们有这样的观点设置 -app -views - layouts - application.html.erb - users - index.html.erb - show.html.erb - etc ... 我想创建基于它的文件我可以做(只是r
我想创建一个基于应用程序中现有文件(例如视图或控制器)创建文件(和目录等)的生成器.所以,如果我们有这样的观点设置

-app
   -views 
        - layouts
             - application.html.erb
        - users
             - index.html.erb
             - show.html.erb 
             - etc ...

我想创建基于它的文件我可以做(只是ruby)

directories = Dir.entries("#{Rails.root}/app/views")
directories.each do |directory|
  unless directory == "." or directory == ".."
    files = Dir.entries("#{Rails.root}/app/views/#{directory}")
    files.each do |file|
      unless file == "." or file == ".."
        text = File.read("#{Rails.root}/app/views/#{directory}/#{file}")      
        something #=> whatever else needs to go here to edit the file
        something else #=> output_file.puts whatever
      end
    end
  end
end

所以这基本上是我想用生成器做的,所以我可以将我的代码转换成插件并将其用于其他应用程序.

第一个问题,我如何生成任意文件(使用生成器基于现有文件名的文件名.是否适合像我上面那样遍历目录,获取目录/文件并生成文件?有没有办法做我做的事情确实使用了一种更简单的方法(我的方法似乎很容易破碎).

另外,我应该将所有读取/格式化/写入代码放在生成器本身内,只是将一个字符串传递给create_file的“初始化内容”部分,或者我应该将它放在其他地方.或者我应该使用生成器来创建裸文件并使用init脚本填充它?

是否有更多rails类型的方法来填充生成的文件,或者我应该只将所有格式化代码推送到生成器中.如果是这样,采用这种方法的适当方法是什么.

解决方法

我不确定你是否想知道如何在rails3中构建生成器.您显示的代码不是类似于生成器的代码.在生成器中,您可以使用 Thor中的所有命令,它们为您提供了一个非常强大的工具集来操作文件,并将代码(字符串)注入到类或文件中.

因此,我绝对会在生成器中填充您的文件,因为它会在用户请求时发生,并且用户可以选择是否需要或可以覆盖某些文件.

在gem中,您将拥有一个lib / generators文件夹,其中包含templates文件夹,其中包含您可能希望放置在rails应用程序中的所有文件.

从Thor文档中,这里是a nice example来构建生成器中的文件.

希望这可以帮助.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读