我试图在我的rails应用中添加一个裸骨标记。我按照repository上的说明操作,然后按照示例获取裸骨标记here。这是我的标记的js(从示例中直接拉出):
(function(){
var protocol = 'http://'
var host = '<%= Rails.application.config.action_controller.default_url_options[:host] %>';
var port = '<%= Rails.application.config.action_controller.default_url_options[:port] %>';
port = port === '' ? '' : ':' + port;
var full_host = protocol + host + port;
document.location = full_host + "/pages/new?url=" + encodeURIComponent(document.location)
})();
我在视图中的链接:
<%= link_to 'Bookmarklet', easymarklet_js('my_sample_bookmarklet.js.erb') %>
我现在收到此错误:
undefined method `[]' for nil:NilClass
(in /Users/myname/Rails/sample/app/assets/javascripts/my_sample_bookmarklet.js.erb)
那来自我的JS的第二或第三行吧?我该如何解决?我的javascript技能不是很好,所以任何帮助都表示赞赏。提前谢谢!
答案 0 :(得分:1)
听起来Rails.application.config.action_controller.default_url_options
可能是nil
。你可以通过检查控制台来确认吗?如果是这样,您只需要在环境文件中设置它。开发中的标准默认值是:
MyApp::Application.configure do
# development.rb
config.action_controller.default_url_options = { host: 'localhost', port: 3000 }
end