mam kolejny problem na który się natknąłem podczas nauki railsów.
Otóż mam wygenerowane modele, kontrolery, widoki wszystko fajnie. Korzystam z modułu authologic do autentykacji i autoryzacji.
Mam sobie dwa modele:
advert:
class Advert < ActiveRecord::Base
attr_accessible :title, :description
belongs_to :users
end
user:
class User < ActiveRecord::Base
acts_as_authentic
has_many :adverts
end
mam także wygenerowane formularze do dodawania wpisów do bazy.
Moim problemem jest to iż chciałbym dodać wpis z tego formularza, który posiada pola title i description do bazy wraz z id uzytkownika ktory dodaje wpis (który jest zalogowany). Pola w id usera w formularzu nie mam.
Obecnie robie to tak (bez id usera):
def create
@advert = Advert.new(params[:advert])
if @advert.save
flash[:notice] = "Wpis dodano"
redirect_to @advert
else
render :action => 'new'
end
end
Dodam iż w bazie jest zrobiona relacja 1:n (jeden user może dodać wiele wpisów).
Będę wdzięczny za pomoc.
[quote]@advert = current_user.adverts.new(params[:advert])
[/quote]
hmm ciekawe rozwiązanie
Z ciekawości się zapytam czy jest jakaś znaczna różnica między pierwszym zapisem hubertlepick’a a tym (np. wydajnościowa, poprawnościowa wg jakiejś konwencji itp)?
Jako początkujący pytam bym wiedział jak w przyszłości pisać by było jak najbardziej poprawnie.
Idąc dalej w tę stronę natknąłem się na kolejny problem mianowicie, mam sobie
_form.html.erb:
[code]<% form_for @advert do |f| %>
<%= f.label :title %>
<%= f.text_field :title %>
....
<% end %>[/code]
adverts_controller.html.erb:
[code]def show
@advert = Advert.find(params[:id])
end
def new @advert = Advert.new @advertDetail = AdvertDetail.new
end[/code]
moje pytanie to czy da się dołączyć w metodzie new do @advert obiekt @advertDetail tak by <% form_for @advert do |f| %> mieć dostęp do pól znajdujących sie w modelu advetDetail (to samo chciałbym uzyskać w metodzie show)?
Szukałem w google ale szczątkowe informacje są na ten temat (chyba że źle szukałem)
[quote=mits][quote]@advert = current_user.adverts.new(params[:advert])
[/quote]
hmm ciekawe rozwiązanie
Z ciekawości się zapytam czy jest jakaś znaczna różnica między pierwszym zapisem hubertlepick’a a tym (np. wydajnościowa, poprawnościowa wg jakiejś konwencji itp)?[/quote]
Zdecydowanie lepiej wygląda to od strony “poprawnościowej”. Zwróć uwagę na to, że taki ficzer Railsów o wiele ułatwia robotę, jeśli chodzi o np. relację habtm through.