Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 3 将资产和区域设置包括在gemrails3.2中_Ruby On Rails 3_Ruby On Rails Plugins - Fatal编程技术网

Ruby on rails 3 将资产和区域设置包括在gemrails3.2中

Ruby on rails 3 将资产和区域设置包括在gemrails3.2中,ruby-on-rails-3,ruby-on-rails-plugins,Ruby On Rails 3,Ruby On Rails Plugins,我的档案里有这样的短信 gem 'plugin', :git => 'git://plugin.git' 我想在我的插件中添加一些资产和区域设置,所以我必须在Rails::Engine配置中添加路径。所以我在init.rb中有这样的smth I18n.load_path += Dir[File.join(File.expand_path(File.dirname(__FILE__)), 'locales', '*.yml')] Rails.application.class.config

我的档案里有这样的短信

gem 'plugin', :git => 'git://plugin.git'
我想在我的插件中添加一些资产和区域设置,所以我必须在Rails::Engine配置中添加路径。所以我在init.rb中有这样的smth

I18n.load_path += Dir[File.join(File.expand_path(File.dirname(__FILE__)), 'locales', '*.yml')]
Rails.application.class.config.assets.paths << File.join(File.expand_path(File.dirname(__FILE__)), 'assets')
I18n.load_path+=Dir[File.join(File.expand_path(File.dirname(uuu File_uuu)),'locales','*.yml')]

Rails.application.class.config.assets.path您确定需要修改Rails路径吗

我认为您可以使用约定而不是配置,只需将资产放入
lib/assets
vendor/assets
中,它们就会自动加载


查看文档:

感谢@phoet提供链接。我从他的链接中找到了这个代码

module JqueryMobileRails
  class Engine < ::Rails::Engine
  end
end
模块JqueryMobileRails
类引擎<::Rails::引擎
结束
结束
所以我把它添加到lib/my_plugin.rb中

module MyPlugin
  class Engine < ::Rails::Engine
  end
end
modulemyplugin
类引擎<::Rails::引擎
结束
结束

而且它有效

但是如果我想在bundle/plugin/lib/assets dir中有资产呢?我有一个插件。这个插件有一些ruby代码和一些javascript代码。所以我想在我的应用程序中包含这个javascript代码。我真的不明白为什么rails默认不包含gems中的/lib/assets/*和/lib/config/locales/*代码。我认为
vendor/assets
应该放在正确的位置。查看jquery mobile rails插件,我花了几个小时才弄明白这一点