我正在搞乱rails 2.3模板,并希望能够在我的模板中使用应用程序名称作为变量,所以当我使用......时
,我希望能够访问template.rb中的appname.有人知道怎么做吗?
谢谢
rails appname -m path/to/template.rb
我一直在寻找这个问题的答案.不幸的是,上面的答案(@root)似乎在Rails 3中不起作用.
这是您可以在Rails 3应用程序模板中访问的变量(甚至更容易):
@app_name @app_path
谢谢你的回答.迈克伍德豪斯,你是如此亲密.事实证明,你需要做的就是从rails模板中访问appname ...
@root.split('/').last
@root变量是初始化模板时创建的第一个变量,可在rails模板中使用.RAILS_ROOT不起作用.
在Rails 3中,使用该app_name
属性.
请参阅Rails :: Generators :: AppGenerator的文档.
我遇到了类似的问题,上面列出的变量都没有在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