Przypisywanie wartości do instancji

Sorry za trywialne pytanie, ale muszę je zadać.

Jak dodać wiele parametrów do jednej instancji?

Wysyłam formularzem kilka wartości.

Obecnie robię bardzo źle [w kontrolerze], bo tak:
@var = params[:name]
@var2 = params[:surrname]

Dzięki za pomoc.

Podaj szerszy kontekst problemu, bo nie za bardzo wiadomo o co chodzi. :slight_smile: Co chcesz tu inaczej zrobić?

Chciałbym wysłać do funkcji mailera jedną instancję zamiast 10.
Mam form_tag, który wysyła parę informacji do kontrolera i obecnie każdą z osobna muszę wysłać do mailera, wolałbym wysłać tylko jedną i z niej w mailerze wyciągać dane.

Przeslij params do mailera ? Stwórz tablice z paramsów ? (np: [params[:name], params[:surname]), Hasha ? ( {:name => params[:name], :surname => params[:surname]} )

Nie bardzo dalej wiem o co Ci chodzi.

Rozumiem ze jako instację rozumiesz zmienną instancyjną ?

Moze pokaz kawalek kodu.

[quote=debosh]Przeslij params do mailera ? Stwórz tablice z paramsów ? (np: [params[:name], params[:surname]), Hasha ? ( {:name => params[:name], :surname => params[:surname]} )

Nie bardzo dalej wiem o co Ci chodzi.

Rozumiem ze jako instację rozumiesz zmienną instancyjną ?

Moze pokaz kawalek kodu.[/quote]
Instancja/zmienna, wszystko jedno.

Czyli mogę zrobić np. tak?

@var = {:name => params[:name], :surrname => params[:surrname]}

Dane później wyciągnę w taki sposób?

@var.name albo @var[0]

Nie mogę tego przetestować teraz niestety. Ale dzięki, już mnie naprowadziłeś.

Uwierz mi, że to nie to samo.

nie - polecam jakąś książkę z podstawami rubego. albo rails for zombies - tam się nauczysz obsługiwać hashe.
Swoją drogą - jak pozostali - nie do końca rozumiem w czym masz problem. Do mailera możesz wysłać zmienną params, i w samym mailerze sie nią bawić. Na railscastach(jak i w wieelu innych miejscach w sieci) jest opis jak zrobić mailera w railsach…

Mozesz miec rozne zmienne: instancyjne, klasowe, globalne, lokalne

Instancja to jest konkretny obiekt danej klasy, np:

Masz klasę User, jak zrobisz @user = User.new to @user będzie instancją klasy User

[quote=qrooel]Czyli mogę zrobić np. tak?

@var = {:name => params[:name], :surrname => params[:surrname]}

Dane później wyciągnę w taki sposób?[/quote]
Dane z hasha wyciagasz jak z paramsow (ktore w tym przypadku tez sa hashem, czyli:

@var = {:name => params[:name], :surrname => params[:surrname]} @var[:name] @var[:surrname]
Tutaj masz dokumentacje Hash razem z przykladami:
http://ruby-doc.org/core/classes/Hash.html

Dokładnie o to mi chodziło, dzięki debosh.