Article View: pl.comp.lang.ruby
Article #718Re: Zmiana wartości dla całego obiektu
From: Radarek
Date: Tue, 27 Nov 2007 14:28
Date: Tue, 27 Nov 2007 14:28
33 lines
1695 bytes
1695 bytes
Bober pisze:
> Witam!
> Mam obiekt ActiveRecord.
>
> Chciałbym zmienić wartości wszystkich artybutów.
>
> Robi tak:
> // Post - obiekt AR
>
> @invo = Post.find(params[:id])
> @a = @invo.attributes
>
> @a.each { |m, n|
> @invo.m = "nowa_wartosc"
> }
Spróbuj tak:
@invo.send(m + '=', "nowa_wartosc")
(brzydko ale wiem jak to chciałeś zrobić, więc to jest poprawka by
zadziałało)
>
> jednak otrzymuje undefined method `m='
>
> Jak dostać się do wszystkich artybutów obiektu?
Jeśli chcesz zmienić tylko atrybuty (bez automatycznego zapisywanie) i
masz hash z z atrybutuami i ich wartościami (np params) to możesz to
zrobić tak:
@post.attributes = hash
a potem jeśli uważasz to za stosowane @post.save.
Technical Details
Message-ID:
<fih9hv$s0t$1@bobo.ds5.agh.edu.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!localhost!not-for-mailReferences:
<02150983-c65d-4b3f-aca0-40e0df553b55@n20g2000hsh.googlegroups.com>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!news.rmf.pl!agh.edu.pl!news.agh.edu.pl!localhost!not-for-mail From: Radarek <radarrek@poczta.fm> Newsgroups: pl.comp.lang.ruby Subject: Re: Zmiana wartości dla całego obiektu Date: Tue, 27 Nov 2007 15:28:15 +0100 Organization: News serwer at news.ds5.agh.edu.pl Lines: 33 Message-ID: <fih9hv$s0t$1@bobo.ds5.agh.edu.pl> References: <02150983-c65d-4b3f-aca0-40e0df553b55@n20g2000hsh.googlegroups.com> NNTP-Posting-Host: 192.168.128.44 Mime-Version: 1.0 X-Trace: bobo.ds5.agh.edu.pl 1196173695 28701 192.168.128.44 (27 Nov 2007 14:28:15 GMT) X-Complaints-To: abuse@localhost NNTP-Posting-Date: Tue, 27 Nov 2007 14:28:15 +0000 (UTC) User-Agent: Thunderbird 2.0.0.6 (X11/20071022) In-Reply-To: <02150983-c65d-4b3f-aca0-40e0df553b55@n20g2000hsh.googlegroups.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit