rails 4 - 参数个数错误(2个为1) - stylesheet_link_tag和javascript_include_tag

时间:2014-04-28 01:23:54

标签: ruby-on-rails-4

当我在本地运行它时,我在rails应用程序中收到以下错误:

ActionView::Template::Error (wrong number of arguments (2 for 1)):
     8:         %link{href: "/assets/favico.png", rel: "icon"}/
     9:         %link{href: "https://fonts.googleapis.com/css?family=Open+Sans:400,700", rel: "stylesheet", type: "text/css"}/
    10:         = stylesheet_link_tag "application", :media => "all" 
    11:         = javascript_include_tag "application"
    12:         = csrf_meta_tags
    13:         = yield(:head)
  app/views/layouts/application.html.haml:10:in `_app_views_layouts_application_html_haml___410024948890833714_70223805533300'

我已经在heroku上部署了应用程序,没有任何问题。我最近从rails3更新到rails 4后出现此问题。

不使用帮助程序,而是手动添加标记:

%link{href: "/assets/application.css", media: "screen", rel: "stylesheet"}/
%script{src: "/assets/application.js"}

2 个答案:

答案 0 :(得分:21)

我假设您正在使用链轮2.12.0,如果是这种情况,请根据https://github.com/sstephenson/sprockets/issues/540将其降级到2.11.0

答案 1 :(得分:4)

我发现更新的宝石,在其指示中将 application.css 更改为 application.css.scss ,将无法识别“应用程序”作为stylesheet_link_tag的scss文件的参数。你需要改变:

<%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track' => true %>

到此:

<%= stylesheet_link_tag 'application.css.scss', media: 'all', 'data-turbolinks-track' => true %>

这将允许您使用最新的宝石。