Soru raylar 4 - yanlış argüman sayısı (2 için 1) - stylesheet_link_tag ve javascript_include_tag


Yerel olarak çalıştırdığımda raylarım uygulamasında şu hatayı alıyorum:

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'

Uygulamayı heroku'ya dağıttım ve sorun yok. Bu sorun, raylar3'ten raylara 4 güncellendikten sonra yakın zamanda meydana geldi.

Yardımcıları kullanmak yerine, etiketleri manuel olarak eklemek işe yarar:

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

18
2018-04-28 01:23


Menşei


Buna göre stackoverflow.com/a/21834563/308731Scss dosyalarınızda buna neden olan bir şey olabilir, çünkü 3'ten 4'e yükseltildikten sonra oldu. - Iceman
Önerin için teşekkürler. Boş bir application.css dosyası denedim ve hala aynı hatayı aldım. - Jeff Tsui


Cevaplar:


Eğer sprockets 2.12.0 kullandığınızı varsayalım, eğer durum buysa, 2.11.0'a göre indiriniz https://github.com/sstephenson/sprockets/issues/540


21
2018-05-17 02:39



link için teşekkürler! Aşağıdakilerin birleşimi benim için çalıştı: gem 'sass-ray', '4.0.2' ve gem 'dişlileri', '2.11.0' - Jeff Tsui
Şimdi Rails 4.0.9'a yükselttikten sonra bunu alıyorum. 2.11.0 ve sass rayları 4.0.3. - cman77
Çıktı o oldu github.com/schneems/sprockets_better_errors mücevher. Sadece Rails 4.0.5 için destekleniyor. - cman77
@ cman77 sprockets_better_errors hakkında bilgi için teşekkürler - 4.1.4 ve ruby ​​2.1.3 rayları kullanıyorum ve downgrading zincir dişlileri kullanıyorum, hala hatayı alıyordum. Dişli çarkları daha iyi hatalar ayıklamak benim için sorunu çözdü. : + 1: - ea0723
sprockets_better_errors işlevi, Rails 4.1'e dahil edilmiştir ve artık gerekli değildir: github.com/schneems/sprockets_better_errors/issues/25 - Bryan Ash


Değiştirme talimatlarında yer alan güncellenmiş mücevherlerin olduğunu fark ettim application.css için application.css.scss'styles', stylesheet_link_tag için bir scss dosyası için parametre olarak kabul edilmez. Değiştirmeniz gerekenler:

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

buna:

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

Bu son taşlar ile çalışmanıza izin verecektir.


4
2018-01-17 13:13



Bu çözüm arıyor application.css.sass.css benim durumumda. Raylar 4.2 ile test edilmiştir - Ivan
Kırmak için görünür Started GET "/javascripts/application.css.scss.js ... ActionController::RoutingError (No route matches [GET] "/javascripts/application.css.scss.js"). Raylar 4.2. - brntsllvn
Brent. JavaScript için sadece JavaScript dosyanızın tam adı olacaktır. Stil sayfanızın dosyası değil. - 6ft Dan
Bu benim problemimi çözdü. Rayları Kullanma 4.2.6, dişliler 3.5.2, turbolinks 2.5.3. Bununla ilgili daha derin bir araştırma yapacağım. - sbos61
öyleydi application.css Benim durumumda (dosya çağrılsa da application.css.scss) - frbl