def edit @foo = …
respond_to do |format|
format.html
end
end
Funktioniert natürlich, aber dann kommt der Punkt, an dem ich das
Partial auch in der Antwort auf einen Ajax-Request verwenden möchte
def edit @foo = …
respond_to do |format|
format.html
format.js do
render :update do |page|
page.replace_html ‘foo’, :partial => ‘foo’,
:locals => { :f => … }
end
end
end
end
Die Frage ist nun, wie bekomme ich den passenden FormBuilder als f in
das Partial hinein. Ich habe mir teilweise mit einem weiteren Partial
beholfen, das dann nur für Updates den passenden Rahmen um das
eigentliche “Nutz”-Partial wickelt.
_foo_update.html.erb
<% fields_for @foo do |f| %>
<%= render :partial => ‘foo’, :locals => { :f => f } %>
<% end %>
Das ist nicht schön, weil das zweite Partial wenig tut und obendrein
Code dupliziert, der schon an anderer Stelle steht, denn typischerweise
verwende ich einen eigenen FormBuilder, der dann auch noch eigene
Optionen bekommt. Das kann man hinter Helper-Methoden verstecken, es
bleibt aber das lästige zweite Partial. Vielleicht hat jemand eine
elegante Idee, wie sich das verschönern lässt.
guter punkt. genau das problem hatte ich gestern auch und hab es
nicht wirklich lösen können.
kann es sein, dass es einfach ohne das f. geht und du einfach das
objekt angeben musst also text_field :object, :method…
wie gesagt hab keine lösung gefunden… wenn also jemand was weiß…
guter punkt. genau das problem hatte ich gestern auch und hab es
nicht wirklich lösen können.
kann es sein, dass es einfach ohne das f. geht und du einfach das
objekt angeben musst also text_field :object, :method…
In meinem Fall definitiv nicht, weil ich nicht das Verhalten der
gewöhnlichen Helper text_field usw. haben möchte, sondern dass, was ein
bestimmter FormBuilder daraus macht.
wenn ich kurz fragen darf, was macht er da draus?
was für eigenschaften brauchst du?
Labels u.a. Außerdem erzeugt mir der FormBuilder für Assoziationen
automatisch ein geeignetes Control, entweder ein Select-Element oder
eine Liste von Checkboxen. Dabei berücksichtigt er auch, ob das
Formular de/aktiviert ist.