Apa perbedaan antara @title
dan title
? Karena keduanya dapat berupa nama variabel. Juga, bagaimana saya memutuskan variabel apa yang harus saya gunakan? Dengan @
atau tidak?
ruby-on-rails
ruby
variables
OneZero
sumber
sumber
Jawaban:
title
adalah variabel lokal. Mereka hanya ada dalam ruang lingkupnya (blok saat ini)@title
adalah variabel instan - dan tersedia untuk semua metode di dalam kelas.Anda dapat membaca lebih lanjut di sini: http://strugglingwithruby.blogspot.dk/2010/03/variables.html
Di Ruby on Rails - mendeklarasikan variabel Anda di controller Anda sebagai variabel instan (
@title
) membuatnya tersedia untuk Anda lihat.sumber
Gunakan
@title
di pengontrol Anda ketika Anda ingin variabel Anda tersedia di tampilan Anda.Penjelasannya adalah bahwa itu
@title
adalah variabel instan dantitle
merupakan variabel lokal dan rel membuat variabel instan dari pengontrol tersedia untuk dilihat. Ini terjadi karena kode templat (erb, haml, dll) dieksekusi dalam lingkup instance pengontrol saat ini.sumber
Perbedaannya terletak pada ruang lingkup variabel. Versi @ tersedia untuk semua metode instance kelas.
Jawaban singkatnya, jika Anda berada di controller dan Anda perlu membuat variabel tersedia untuk tampilan kemudian gunakan
@variable
.Untuk jawaban yang lebih lama coba ini: http://www.ruby-doc.org/docs/ProgrammingRuby/html/tut_classes.html
sumber
@variable
s disebut variabel instan dalam ruby. Yang berarti Anda dapat mengakses variabel-variabel ini dalam METODE APA PUN di dalam kelas. [Melintasi semua metode di kelas]Variabel tanpa
@
simbol disebut variabel lokal, yang berarti Anda dapat mengakses variabel lokal ini hanya dalam METODE YANG DEKLARKAN. Terbatas pada lingkup lokal.Contoh Variabel Instans:
Dalam contoh di atas
@cust_id
,@cust_name
,@cust_addr
diakses di metode lain dalam kelas. Tetapi hal yang sama tidak akan dapat diakses dengan variabel lokal.sumber
Tutorial tentang Apa Lingkup Variabel? menyajikan beberapa detail dengan cukup baik, cukup lampirkan yang terkait di sini.
sumber
Variabel lokal hanya dapat diakses dari dalam blok inisialisasi itu. Variabel lokal juga dimulai dengan huruf kecil (az) atau garis bawah (_).
Dan variabel instan adalah instance dari
self
dan dimulai dengan@
variabel instance juga milik objek itu sendiri. Variabel Instance adalah variabel yang Anda lakukan metode misalnya.send
dllcontoh:
Ini
@user
adalah variabel instanDan variabel instance tidak diinisialisasi memiliki nilai
Nil
sumber
@title
&title
?@title
atautitle
Variabel @ adalah variabel instan, tanpa variabel lokal.
Baca lebih lanjut di http://ruby.about.com/od/variables/a/Instance-Variables.htm
sumber