🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: pl.comp.lang.ruby
7 messages
7 total messages Started by Shaman Thu, 15 Feb 2007 13:09
RoR [newbie] scaffolding i relacje
#434
Author: Shaman
Date: Thu, 15 Feb 2007 13:09
35 lines
1704 bytes
Witam - przechodzę trudne początki z RoR :)

Tutorial z "Agile Web Development.." poszedł łatwo, ale przy próbie 
zrobienia czegoś samodzielnie, trafił mi sie problem szybciej niż się tego 
spodziewałem.

Otóż chciałbym aby scaffold obsłużył mi prostą relację i zamiast 
identyfikatora wyswietlała się wartość słownikowa z innej tabeli. Czy 
scaffold coś takiego umożliwia?

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? :)

PZDR
Shaman 
Re: RoR [newbie] scaffolding i relacje
#435
Author: archiwista
Date: Thu, 15 Feb 2007 14:49
46 lines
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)
Re: RoR [newbie] scaffolding i relacje
#436
Author: archiwista
Date: Thu, 15 Feb 2007 14:58
7 lines
1173 bytes
Użytkownik "archiwista"

zapomiałem dodać, żebyś przy kreacji tabeli zawod zminił nazwę na zawody,
potem odpowiednio dał znać o tym rubyemu w environment.rb, żeby rozróżniał
między zawod a zawody, potem odpowiednio dodał -y w modelu, contollerze i
view
Re: RoR [newbie] scaffolding i relacje
#437
Author: Shaman
Date: Thu, 15 Feb 2007 16:29
19 lines
1618 bytes
Użytkownik "archiwista" <nie@ma.com> napisał w wiadomości 
news:er1sfb$ohm$1@inews.gazeta.pl...
>
> zapomiałem dodać, żebyś przy kreacji tabeli zawod zminił nazwę na zawody,
> potem odpowiednio dał znać o tym rubyemu w environment.rb, żeby rozróżniał
> między zawod a zawody, potem odpowiednio dodał -y w modelu, contollerze i
> view

podejrzewałem że scaffold tego nie załatwi, ale tez nie miałem pojęcia jak 
to ugryźć :)

co do konwencji nazewniczej - trzymam sie nazw anglojęzycznych więc problemy 
z polskimi wyjątkami nie mam :)

w każdym razie wielkie dzięki - spróbuję to teraz wcielić w życie

PZDR
Shaman 
Re: RoR [newbie] scaffolding i relacje
#438
Author: archiwista
Date: Thu, 15 Feb 2007 17:05
20 lines
1423 bytes
tak powinno zadziałać:

w modelu zawod

belongs_to :pracownik

w modelu pracownik

has_many :zawody (professions)

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']] +
@zawody.collect { |z| [z.nazwa, z.id]}, @pracownik.zawod.id)) %>

w controllerze pracownika w edit i w new w pisz

@zawody => Zawod.find(:all)
Re: RoR [newbie] scaffolding i relacje
#439
Author: Shaman
Date: Fri, 16 Feb 2007 10:31
12 lines
1357 bytes
Użytkownik "archiwista" <nie@ma.com> napisał w wiadomości 
news:er23tj$of0$1@inews.gazeta.pl...
> has_many i belongs_to oczywiście zrobiem - inaczej nie miałbym prawa 
> spodziwać się po scaffold czegokolwiek :)

ale całośc wydaje mi sie jeszcze zagmatwana - może przejdę sobie tutor z 
Agile raz jeszcze

dzięki za pomoc
PZDR
Shaman 
Re: RoR [newbie] scaffolding i relacje
#440
Author: archiwista
Date: Fri, 16 Feb 2007 12:50
9 lines
1354 bytes
Użytkownik "Shaman"

podstawa do relacji, to wcześniej dobrze stowrzone i ponazywane tabele w
bazie, potem to już górki, nie da się chyba łatwiej okreslać relacji niż
robi to ror, poszukaj w sieci tutoriali wstępnych do rubyego i w każdym coś
o tym znajdziesz, bo to jest punkt wyjścia do dalszej zabawy

pozd.
Thread Navigation

This is a paginated view of messages in the thread with full content displayed inline.

Messages are displayed in chronological order, with the original post highlighted in green.

Use pagination controls to navigate through all messages in large threads.

Back to All Threads