2014-04-28 59 views
18

我在我的軌道得到以下錯誤的應用程序,當我在本地運行:軌道4 - 錯誤的參數數目(2 1) - stylesheet_link_tag和javascript_include_tag

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中更新到軌道4

除了使用傭工後,添加標籤手工作品:

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

根據這個http://stackoverflow.com/a/21834563/308731,它可能是在你的scss文件中造成這種情況的東西,因爲它發生在從3升級到4之後。 – Iceman

+1

感謝您的建議。我試過了一個空的application.css文件,仍然得到相同的錯誤。 –

回答

21

我假設你正在使用鏈輪2.12.0,如果這是的情況下,降級到2.11.0按https://github.com/sstephenson/sprockets/issues/540

+0

感謝您的鏈接!下面的組合爲我工作:寶石'sass-rails','4.0.2'和寶石'鏈輪','2.11.0' –

+0

我現在升級到Rails 4.0.9後得到這個。我有鏈輪2.11.0和sass-rails 4.0.3。 – cman77

+9

原來是https://github.com/schneems/sprockets_better_errors gem。它只支持Rails 4.0.5。 – cman77

4

我發現,更新的寶石,這在他們的指示,改變application.cssapplication.css.scss,將無法識別'application'作爲scss的參數文件爲stylesheet_link_tag。您需要更改:

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

這樣:

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

這將允許您使用最新的寶石工作。

+2

此解決方案正在尋找'application.css.sass.css'在我的情況。使用Rails 4.2進行測試 – Ivan

+0

似乎打破了'開始GET「/ javascripts/application.css.scss.js' ...'ActionController :: RoutingError(沒有路由匹配[GET]」/javascripts/application.css.scss.js「 )'。Rails 4.2。 – brntsllvn

+0

Brent。對於JavaScript,它只是你的JavaScript文件的全名,而不是你的樣式表文件。 –

相關問題