Article View: pl.comp.lang.ruby
Article #435Re: RoR [newbie] scaffolding i relacje
From: archiwista
Date: Thu, 15 Feb 2007 14:49
Date: Thu, 15 Feb 2007 14:49
46 lines
1940 bytes
1940 bytes
> Prosty przykład:
>
> create table pracownik(
> id int,
> nazwisko varchar(100),
> zawod_id int,
>
> constraint fk_prac_zawod foreign key (zawod_id) references zawod(id),
>
> primary key (id)
> );
>
> create table zawod (
> id int,
> nazwa varchar(100),
>
> primary key (id)
> );
>
> Edytując lub dodając pracownika chciałbym wybrać zawód z listy lub pola
> combo.. obojętnie z czego, byle by wybierać nazwę a nie id. Nie żądam
zbyt
> wiele od scaffold? :)
>
scaffold ci tego nie zrobi, jeżeli w modelach odpowiednio wpisałeś relacje
miedzy pracownik a zawód, powinno być
w modelu zawod
belongs_to :pracownik
w modelu pracownik
has_many :zawod
a potem jeżeli chcesz select_taga dla zawod dla pracownika, zmieniasz w
_form pracownika metodę dla zawod_id
np.
<% select_tag('zawod_id', options_for_select([['wybierz jeden']] +
@zawod.collect { |z| [z.nazwa, z.id]}, @pracownik.zawod.id)) %>
w controllerze pracownika w edit i w new w pisz
@zawod => Zawod.find(:all)
Technical Details
Message-ID:
<er1run$mei$1@inews.gazeta.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.gazeta.pl!not-for-mailReferences:
<er1m37$egu$1@news.telbank.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!newsfeed.gazeta.pl!news.gazeta.pl!not-for-mail From: "archiwista" <nie@ma.com> Newsgroups: pl.comp.lang.ruby Subject: Re: RoR [newbie] scaffolding i relacje Date: Thu, 15 Feb 2007 15:49:58 +0100 Organization: "Portal Gazeta.pl -> http://www.gazeta.pl" Lines: 49 Message-ID: <er1run$mei$1@inews.gazeta.pl> References: <er1m37$egu$1@news.telbank.pl> NNTP-Posting-Host: pc-81-219-65-17.dziesiata.com X-Trace: inews.gazeta.pl 1171550999 22994 81.219.65.17 (15 Feb 2007 14:49:59 GMT) X-Complaints-To: usenet@agora.pl NNTP-Posting-Date: Thu, 15 Feb 2007 14:49:59 +0000 (UTC) X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 X-Priority: 3 X-Newsreader: Microsoft Outlook Express 6.00.2600.0000 X-User: niezrzeszony1 X-MSMail-Priority: Normal MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit