Insert into

Witam

Jak przy pomocy

ActiveRecord::Base.connection.execute

wprowadzić coś do bazy?..próbuje na wiele sposobów i nic, przekazuje sobie zmienną ‘:porada’ i próbuje tak ale to nie działa:

cursor = ActiveRecord::Base.connection.execute("insert into aaa(nazwa)values(nazwa=?)",@params[:porada])

a może jakis inny sposób?
Pozdrawiam

ActiveRecord::Base.connection.insert

za helpem:
insert(sql, name = nil, pk = nil, id_value = nil, sequence_name = nil)

zwraca id obiektu ostatnio załadowanego do bazy

http://api.rubyonrails.org/classes/ActiveRecord/ConnectionAdapters/DatabaseStatements.html#M001424

przykład yna szybko z google:

ActiveRecord::Base.connection.insert("INSERT INTO people (id, name) VALUES (1, 'Jon Tirsen')") ActiveRecord::Base.connection.insert("INSERT INTO people (id, name) VALUES (2, 'Asa Holmstrom')") ActiveRecord::Base.connection.insert("INSERT INTO people (id, name) VALUES (3, 'Ben Hogan')"

Ok dzieki a jak chce tak jak wcześniej pisałem podać wartość przekazywaną z poprzedniej strony a nie na sztywno?

jak ? nie działa to spróbuj na sztywno:

ActiveRecord::Base.connection.insert("INSERT INTO people (id, name) VALUES (#{twoja_wartosc_przekazana}, #{twoja_wartosc_przekazana_nr2})")

pocztaj o #{} i w ogole przeczytaj jakiś minimalny chodziaż help do RoR

michal_sz: czy masz jakiś powód dla którego nie możesz zrobić czegoś takiego:

Person.create(params[:person])

a używasz bezpośrednio SQLa? Wiesz, że możesz użyć ActiveRecord, dodać walidacje itd? Spotkałem się tylko ze 2 czy 3 razy z sytuacjami gdzie pisanie bezpośrednio SQLa było konieczne (jakiś import danych, stara baza), w Twoim wypadku wcale nie jestem tego pewien. Poza tym zamiast @params raczej chciałeś użyć params.

[quote=hubertlepicki]michal_sz: czy masz jakiś powód dla którego nie możesz zrobić czegoś takiego:

Person.create(params[:person]) [/quote]
Kolega michal_sz najwyraźniej ciągle nie odrobił zadania domowego, tzn. nie przeczytał pierwszego przewodnika po Railsach. Szkoda.