Práve som vytvoril model s nasledujúcim príkazom
rails generate model temp name:string description:string
otvoril som temp.rb
ale neobsahuje žiadne vyhlásenia pre členov.
Som tiež zmätený spôsob, akým sú premenná inštanciepoužíva sa v ruby. Vidím veľa úryvkov kódu, kde v metódach používa iba premennú inštancie @instance_var. isn "t inštancia premennej deklarácie požadované v ruby ?, Týmto spôsobom Ak mám 15 metód a každý z nich nastaviť novú premennú inštancie potom nie je jediné miesto, kde všetky inštancie premennej možno nájsť ako my v jave, kde deklarujeme všetky premenné zvyčajne na začiatku triedy s rozsahom (súkromné, chránené, verejné atď.) Tu je príklad kódu
class Hello
def initialize
@instanceHello = "welcomeBack"
end
def printHello
print @instanceHello
end
end
odpovede:
1 pre odpoveď č. 1Pre model to nie je "t class Hello
; to by malo byť class Hello < ActiveRecord::Base
, A tak zdedí veľa funkcií.
Členovia nie sú definovaní v modeli, ale sú definovaní v migrácii, ako ste to urobili rails generate model temp name:string description:string
, Ak máte model pomenovaný temp
, potom by mala byť pomenovaná tabuľka temps
táto databáza by mala skutočne obsahovať všetkých týchto členov.
Druhá vec, o ktorú ste sa pýtalipremenných v Ruby. A áno, je pravda, že neexistuje miesto, kde sa nahromadia premenné inštancie; skôr sú rozptýlené v rôznych metódach, ku ktorým patria; a myslím si, že zvyšuje čitateľnosť.
Pokiaľ ide o váš príklad, môžete urobiť niečo ako:
class Hello
attr_accessor :instanceHello
def initialize
@instanceHello = "welcomeBack"
# self.instanceHello also works here
end
def printHello
p @instanceHello # print doesn"t work in Ruby. p or puts does the job.
# self.instanceHello also works here
end
end