Apakah ada cara untuk mencari tahu dari apa pengontrol saat ini dari dalam tampilan?
Untuk contoh mengapa saya ingin tahu ini: jika beberapa pengontrol berbagi tata letak yang sama, saya mungkin memiliki bagian dalam file tata letak ERB di mana saya ingin menyorot item menu halaman saat ini berdasarkan pada pengontrol.
Mungkin itu pendekatan yang buruk. Jika demikian, apa cara yang lebih disukai untuk melakukan ini?
Saya tertarik untuk mengetahui tentang cara mendapatkan nama dari pengontrol saat ini.
(Jelas saya bisa memasukkan sesuatu seperti @controller_name = 'users'
pada masing-masing controller; tapi sepertinya itu semacam hal yang sudah dilakukan Rails di belakang layar. Jadi saya hanya ingin tahu apakah ada cara built-in.)
params
dalam pandangan. Silakan gunakancontroller_name
sebagai gantinyaDalam Rails Guides, tertulis:
Parameter ActionController
Jadi katakanlah Anda memiliki kelas CSS
active
, yang harus dimasukkan dalam tautan apa pun yang halamannya saat ini terbuka (mungkin agar Anda dapat gaya berbeda). Jika Anda memilikistatic_pages
pengontrol denganabout
tindakan, Anda dapat menyorot tautan seperti di tampilan Anda:sumber
Admin::Orders
makacontroller_name
danparams[:controller]
akan menjadi"orders"
dan"admin/orders"
masing - masing.Admin::UsersController
benar-benar memilikicontroller_name
dariusers
dancontroller_path
dariadmin/users
dalam Rails 4.1.0.referensi
sumber
controller_path
memegang jalur controller yang digunakan untuk melayani tampilan saat ini. (yaitu:)admin/settings
.dan
controller_name
memegang nama pengontrol yang digunakan untuk melayani tampilan saat ini. (yaitu:)settings
.sumber
Jika Anda ingin menggunakan semua stylesheet di aplikasi Anda, cukup tambahkan baris ini di application.html.erb. Masukkan di dalam
<head>
tagJuga, untuk menentukan kelas CSS yang sama pada pengontrol yang berbeda
Tambahkan baris ini di
body
of application.html.erbJadi, sekarang misalnya saya ingin mengubah
p
tag di controller 'home' dan action 'index'.index.scss
File di dalam menambahkan.sumber