Pytanie

Witam,
mam kontroler
pictures.rb w nim akcje create

[code]def create
@picData = params[:picture]
@picData[:gallery_id] = params[:gallery_id]
@picture = Picture.new(@picData)

respond_to do |format|
  if @picture.save
    flash[:notice] = 'Zdjęcie zostało dodane pomyślnie.'
    format.html { redirect_to(@picture) }
    format.xml  { render :xml => @picture, :status => :created, :location => @picture }
  else
    format.html { render :action => "new" }
    format.xml  { render :xml => @picture.errors, :status => :unprocessable_entity }
  end
end

end[/code]
pictures/new.html.erb

[code]

Dodaj zdjęcie:




<% form_for(@picture, :html => { :multipart => true }, :url => { :controller => ‘pictures’, :gallery_id => params[:gallery_id] } ) do |f| %>

<%= f.error_messages %>

<%= f.file_field :pic %>

<%= f.submit "Dodaj", :disable_with => "Proszę czekać..." %>

<% end %>

<%= link_to ‘Wróć’, galleries_path %>[/code]
galleries/show.html.erb

<%= link_to 'Dodaj zdjęcie', { :action => 'new', :controller => 'pictures', :id => @picture, :gallery_id => @gallery } %>

Wszystko ładnie dziala tj. wchodze do galeri i dodaje do niej nowy obrazek.

Pytanie tylko jak wy byscie to zrobili? (aby bylo ladniej, bardziej elegancko)
np. to

@picData = params[:picture] @picData[:gallery_id] = params[:gallery_id] @picture = Picture.new(@picData)
zrobic jakos tak (laczenie tablic) nie wiem dokaldnie czy i jak mozna byloby to zrobic

@picture = picture.new([:picture].[:gallery_id]) --> to oczywiscie mi nie polaczy tych tablic, ale wy pewnie wiecie jak to zapisac wiec prosze o kazda rade
Z gory dzieki za kazda wskazowke.

Hashe łączy się przez Hash#merge.

Poza tym beznadziejnie sformułowane pytanie – za dużo kodu, za mało opisu problemu. A za tytuł wątku to Cię powinni moderatorzy wybatożyć :wink:

Bo to w sumie nie problem, tylko ciekawosc. Jak zrobic cos lepiej(ladniej - skrocic kod).
A co do tytulu nie mialem pojecia co wpisac;)

czyli tak(odrazu ladniejszy kod :wink: )

 @picture = Picture.new(params[:picture].merge( { :gallery_id => params[:gallery_id] }))

ps. duzo kodu, bo widze ze ludzie nie maja problemow i nic nie postuja;)

dzieki Tomash