当前位置:  开发笔记 > 编程语言 > 正文

生成rails应用程序时,从rails模板内部访问应用程序名称

如何解决《生成rails应用程序时,从rails模板内部访问应用程序名称》经验,为你挑选了4个好方法。

我正在搞乱rails 2.3模板,并希望能够在我的模板中使用应用程序名称作为变量,所以当我使用......时 ,我希望能够访问template.rb中的appname.有人知道怎么做吗? 谢谢
rails appname -m path/to/template.rb



1> Mike Fischer..:

我一直在寻找这个问题的答案.不幸的是,上面的答案(@root)似乎在Rails 3中不起作用.

这是您可以在Rails 3应用程序模板中访问的变量(甚至更容易):

@app_name
@app_path



2> danengle..:

谢谢你的回答.迈克伍德豪斯,你是如此亲密.事实证明,你需要做的就是从rails模板中访问appname ...

@root.split('/').last  

@root变量是初始化模板时创建的第一个变量,可在rails模板中使用.RAILS_ROOT不起作用.



3> Daniel Kehoe..:

在Rails 3中,使用该app_name属性.

请参阅Rails :: Generators :: AppGenerator的文档.



4> 小智..:

我遇到了类似的问题,上面列出的变量都没有在Rails 4 @name中可用.我发现在运行时可用

rails plugin new engines/dummy -m my_template.rb

模板中还有其他有用的变量.你可以自己看看并利用它来玩pry.在我的模板里面我添加了

require 'pry'; binding.pry

然后运行ls以显示可用实例变量的列表

ls -i
instance variables:
    @_initializer            @app_path  @behavior   @destination_stack  @extra_entries  @name           @output_buffer   @shell
    @_invocations            @args      @builder    @dummy_path         @gem_filter     @options        @rails_template  @source_paths
    @after_bundle_callbacks  @author    @camelized  @email              @in_group       @original_name  @shebang

推荐阅读
mylvfamily
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有