Closed masterkain closed 13 years ago
It looks like this is a bug in Rails 3.1 that has already been changed: https://github.com/rails/rails/blob/master/actionpack/lib/action_view/helpers/asset_tag_helpers/stylesheet_tag_helpers.rb
If you have any further information about it, let me know.
I got the same error, I tried using rails master using gem "rails", git: "git://github.com/rails/rails.git"
but I still get the same error as above:
ctionView::Template::Error (wrong number of arguments (5 for 2)):
10:
11: - if logged_in?
12: = include_javascripts :locale, :plugins, :admin
13: = include_stylesheets :admin, media: "all"
14:
15: = csrf_meta_tags
16:
app/views/layouts/pages.html.haml:13:in `_app_views_layouts_pages_html_haml__2211736030736782704_2198082520'
Hang on a sec -- considering that sprockets_helper
no longer exists on Rails master, there's no way you could have gotten the same error.
Can someone using Rails 3.1 or master track down where the error is actually coming from in the codebase?
I commented out the parts which where broken, which is essentially include_stylesheets
. include_javascripts
seems to be working correctly. I have no further information of where the error is coming from, but the above error is the one I get when using include_stylesheets
.
@nulvierdrie: Can you find and paste the full stacktrace ... for line line of library code that's throwing "ActionView::Template::Error (wrong number of arguments (5 for 2))" ?
@jashkenas is this what you mean?
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/sprockets/helpers/rails_helper.rb:36:in `stylesheet_link_tag'
jammit (0.6.0) lib/jammit/helper.rb:77:in `tags_with_options'
jammit (0.6.0) lib/jammit/helper.rb:53:in `individual_stylesheets'
jammit (0.6.0) lib/jammit/helper.rb:19:in `include_stylesheets'
app/views/layouts/pages.html.haml:14:in `_app_views_layouts_pages_html_haml___1284152988909867298_2192826920'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_view/template.rb:144:in `block in render'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/activesupport/lib/active_support/notifications.rb:57:in `instrument'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_view/template.rb:142:in `render'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_view/renderer/template_renderer.rb:52:in `render_with_layout'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_view/renderer/template_renderer.rb:38:in `render_template'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_view/renderer/template_renderer.rb:12:in `block in render'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_view/renderer/abstract_renderer.rb:22:in `wrap_formats'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_view/renderer/template_renderer.rb:9:in `render'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_view/renderer/renderer.rb:36:in `render_template'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_view/renderer/renderer.rb:17:in `render'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/abstract_controller/rendering.rb:120:in `_render_template'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_controller/metal/streaming.rb:258:in `_render_template'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/abstract_controller/rendering.rb:114:in `render_to_body'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_controller/metal/renderers.rb:30:in `render_to_body'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_controller/metal/compatibility.rb:43:in `render_to_body'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/abstract_controller/rendering.rb:99:in `render'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_controller/metal/rendering.rb:16:in `render'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_controller/metal/instrumentation.rb:40:in `block (2 levels) in render'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/activesupport/lib/active_support/core_ext/benchmark.rb:5:in `block in ms'
/Users/Jean/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/benchmark.rb:309:in `realtime'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/activesupport/lib/active_support/core_ext/benchmark.rb:5:in `ms'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_controller/metal/instrumentation.rb:40:in `block in render'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_controller/metal/instrumentation.rb:78:in `cleanup_view_runtime'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/activerecord/lib/active_record/railties/controller_runtime.rb:24:in `cleanup_view_runtime'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_controller/metal/instrumentation.rb:39:in `render'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_controller/metal/implicit_render.rb:10:in `default_render'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_controller/metal/implicit_render.rb:5:in `send_action'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/abstract_controller/base.rb:167:in `process_action'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_controller/metal/rendering.rb:10:in `process_action'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/abstract_controller/callbacks.rb:18:in `block in process_action'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/activesupport/lib/active_support/callbacks.rb:497:in `_run__2529606953297566680__process_action__2293573392797205871__callbacks'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/activesupport/lib/active_support/callbacks.rb:386:in `_run_process_action_callbacks'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/activesupport/lib/active_support/callbacks.rb:81:in `run_callbacks'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/abstract_controller/callbacks.rb:17:in `process_action'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_controller/metal/instrumentation.rb:30:in `block in process_action'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/activesupport/lib/active_support/notifications.rb:55:in `block in instrument'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/activesupport/lib/active_support/notifications/instrumenter.rb:20:in `instrument'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/activesupport/lib/active_support/notifications.rb:55:in `instrument'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_controller/metal/instrumentation.rb:29:in `process_action'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_controller/metal/params_wrapper.rb:202:in `process_action'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_controller/metal/rescue.rb:17:in `process_action'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/activerecord/lib/active_record/railties/controller_runtime.rb:18:in `process_action'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/abstract_controller/base.rb:121:in `process'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/abstract_controller/rendering.rb:45:in `process'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_controller/metal.rb:193:in `dispatch'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_controller/metal/rack_delegation.rb:14:in `dispatch'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_controller/metal.rb:236:in `block in action'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_dispatch/routing/route_set.rb:65:in `call'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_dispatch/routing/route_set.rb:65:in `dispatch'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_dispatch/routing/route_set.rb:29:in `call'
rack-mount (0.8.1) lib/rack/mount/route_set.rb:152:in `block in call'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:93:in `block in recognize'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:75:in `optimized_each'
rack-mount (0.8.1) lib/rack/mount/code_generation.rb:92:in `recognize'
rack-mount (0.8.1) lib/rack/mount/route_set.rb:141:in `call'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_dispatch/routing/route_set.rb:531:in `call'
barista (1.0.0) lib/barista/server.rb:33:in `call'
barista (1.0.0) lib/barista/filter.rb:16:in `_call'
barista (1.0.0) lib/barista/filter.rb:9:in `call'
sass (3.1.1) lib/sass/plugin/rack.rb:54:in `call'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_dispatch/middleware/best_standards_support.rb:17:in `call'
rack (1.3.0) lib/rack/etag.rb:23:in `call'
rack (1.3.0) lib/rack/conditionalget.rb:25:in `call'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_dispatch/middleware/head.rb:14:in `call'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_dispatch/middleware/params_parser.rb:21:in `call'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_dispatch/middleware/flash.rb:243:in `call'
rack (1.3.0) lib/rack/session/abstract/id.rb:195:in `context'
rack (1.3.0) lib/rack/session/abstract/id.rb:190:in `call'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_dispatch/middleware/cookies.rb:321:in `call'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/activerecord/lib/active_record/query_cache.rb:54:in `call'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb:448:in `call'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_dispatch/middleware/callbacks.rb:28:in `block in call'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/activesupport/lib/active_support/callbacks.rb:392:in `_run_call_callbacks'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/activesupport/lib/active_support/callbacks.rb:81:in `run_callbacks'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_dispatch/middleware/callbacks.rb:27:in `call'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_dispatch/middleware/reloader.rb:68:in `call'
rack (1.3.0) lib/rack/sendfile.rb:102:in `call'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_dispatch/middleware/remote_ip.rb:48:in `call'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_dispatch/middleware/show_exceptions.rb:47:in `call'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/railties/lib/rails/rack/logger.rb:13:in `call'
rack (1.3.0) lib/rack/methodoverride.rb:24:in `call'
rack (1.3.0) lib/rack/runtime.rb:17:in `call'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/activesupport/lib/active_support/cache/strategy/local_cache.rb:72:in `call'
rack (1.3.0) lib/rack/lock.rb:34:in `call'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/actionpack/lib/action_dispatch/middleware/static.rb:53:in `call'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/railties/lib/rails/engine.rb:438:in `call'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/railties/lib/rails/rack/content_length.rb:16:in `call'
/Users/Jean/.rvm/gems/ruby-1.9.2-p136@Manager/bundler/gems/rails-41eac9b3f6b4/railties/lib/rails/rack/log_tailer.rb:14:in `call'
rack (1.3.0) lib/rack/handler/webrick.rb:59:in `service'
/Users/Jean/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/webrick/httpserver.rb:111:in `service'
/Users/Jean/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/webrick/httpserver.rb:70:in `run'
/Users/Jean/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/1.9.1/webrick/server.rb:183:in `block in start_thread'
Yep -- that's what I mean. Thanks for the full stacktrace. It looks like Rails 3.1 has changed the method signature of stylesheet_link_tag
and javascript_include_tag
in a backwards-incompatible fashion.
I've just pushed out a new version of Jammit that should fix this: 0.6.2. Give it a try, and let me know if it solves your problem.
version 0.6.2 works, kind of...
= include_stylesheets :admin, media: "all"
produces:
<link href="/stylesheets/admin.css" media="all" rel="stylesheet" type="text/css" />
<link href="/stylesheets/editor.css" media="all" rel="stylesheet" type="text/css" />
<link href="/stylesheets/images.css" media="all" rel="stylesheet" type="text/css" />
<link href="/stylesheets/jquery-ui.css" media="all" rel="stylesheet" type="text/css" />
!= include_stylesheets :admin, media: "all"
got me the unescaped html, which worked. But I guess it'd be better if unescaping was done in jammit, instead of having to do it manually.
The tags string should already be marked as "html-safe", so I don't know if there's anything more we can do about that:
https://github.com/documentcloud/jammit/blob/master/lib/jammit/helper.rb#L21-22
I see. Not sure then. But it only happens for the css, the javascript is unescaped correctly (and worked from the beginning anyway)...
No -- you're right, I'm missing an html_safe there. Fixed in the next commit.
Alright -- I've yanked 0.6.2 -- give 0.6.3 a try and let me know.
ouch, that's what you get for working with HEAD branches, the haml gem just broke, so you'll have to excuse me while I try to fix this. I'll report back later when I tested 0.6.3
Yes, according to @sstephenson, all of this is just a Rails bug in the first place.
Well I switched back to rails 3.1.0.rc1 and now it's working. thanks again. I realize some of the packaging is now available in rails 3.1 but I still prefer Jammit as it offers more flexibility.