Hallo ich bin mit Rest Sachen etwas am verzweilfeln…
class Client < ActiveRecord::Base
has_one :svasset
class Svasset < ActiveRecord::Base
belongs_to :client
map.resources :clients, do |client|
client.resource :svassets
end
Anzeigen funktioniert soweit , aber ich bekomme folgendes nicht hin:
Bei Neuanlage eines Client soll eine Svasset erstellt werden mit der
client_id
def new
@client = Client.new
end
def create
@client = Client.new(params[:client])
@svasset.clients << @client
respond_to |wants|
flash[:notice] = ‘Client was successfully created.’
wants.html redirect_to(@client)
end
You have a nil object when you didn’t expect it! The error occurred
while evaluating nil.clients
Gruß
Werner L.
Lindenburger Allee 22 - 50931
Köln
0221.8805 635
http://www.webagentur-laude.de
Hi,
wo bekommst du @svasset her? es ist anscheinend nil…
-Alex
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
@svasset.clients << @client
@svasset is das nil object…
du solltest es vielleicht so machen:
@client = Client.new(params[:client])
@client.svasset = @client.id
manuel
Am 31.08.2008 um 22:47 schrieb Werner L.:
end
def create
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)
iD8DBQFIuwUXs/WwCK0ZZEARAs3FAJ9GPqjKG46b+1vwDtTnE4fRZfpeogCgmUyB
whTfF1bI+4yIJ0D2bChYDbc=
=5O2A
-----END PGP SIGNATURE-----
Am 31.08.2008 um 22:54 schrieb Manuel W.:
Hallo Manuel
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
@svasset.clients << @client
@svasset is das nil object…
du solltest es vielleicht so machen:
@client = Client.new(params[:client])
@client.svasset = @client.id
client ja aber svasset
legt er leider nicht an…nix leeres … gar nix…
mhh
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
und was macht er, wenn du es so machst:
@client = Client.new(params[:client])
@svasset = Svasset.new(@client.id)
@client.svasset = @svasset
oder die letzte zeile so rum:
@svasset.client << @client
weiß gerade nicht, was deine objekte so brauchen…
gruß
manuel
Am 31.08.2008 um 23:13 schrieb Werner L.:
belongs_to :client
def new
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (Darwin)
iD8DBQFIuw7Rs/WwCK0ZZEARApzJAJ4mFYz5xYn3PoeGckXhQkLNYEUFCwCdHS0R
D+kij1wU9kijBy9l7M8yGak=
=0Qde
-----END PGP SIGNATURE-----
Am 31.08.2008 um 23:36 schrieb Manuel W.:
Das klappt jetzt endlich… wunderbar…
@client = Client.new(params[:client])
@svasset = Svasset.new(@client.id)
@client.svasset = @svasset
kann ich dich noch was löchern…
def edit
@client = Client.find(params[:id])
end
im @client sollte doch “alles drin sein”, wg belongs_to…
Editing client
<% form_for(@client) do |f| %>
<%= f.label :wert%>
<%= f.text_field :wert %>
wie muß ich das Objekt :wert formulieren? damit es Werte aus der
svasset anzeigt…?
Gruß
Am 01.09.2008 um 11:15 schrieb Sven J.:
Hallo Sven…
danke für den Tipp
<%fields_for
hatte ich dann auch im Buch gefunden
New und delete klappt jetzt, fehlt nur noch update…
Gruß
Evtl helfen Dir ja folgende Railscasts weiter. Ist zwar auch was
Ajax-Kram dabei aber es gibt einen guten Ãœberblick was man beachten
muss, wenn man mehrere Models mit einem Formular bearbeiten will.
- Complex Forms Part 1
- Complex Forms Part 2
- Complex Forms Part 3
Viel Erfolg.
Am Sonntag, den 31.08.2008, 23:55 +0200 schrieb Werner L.:
Hash: SHA1
class Client < ActiveRecord::Base
hin:
@svasset.clients << @client
iD8DBQFIuwUXs/WwCK0ZZEARAs3FAJ9GPqjKG46b+1vwDtTnE4fRZfpeogCgmUyB
rubyonrails-ug mailing list
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug
–
Mit den besten Grüßen aus Düsseldorf
Sven J.
HS Public Relations GmbH
Marbacher Str. 114
D-40597 Düsseldorf
Fon: +49 211 90486-0
Fax: +49 211 90486-22
[email protected]
Sitz der Gesellschaft: Düsseldorf - AG Düsseldorf HRB 23149 -
USt-ID-Nr.: DE119372867 - Steuer-Nr.: 13358360228
Geschäftsführer: Alois Schnabl, Claudia Heidemeyer, Sebastian Schnabl -
Postfach 18 03 41 - D 40570 Düsseldorf
Werner L. schrieb:
Am 01.09.2008 um 11:15 schrieb Sven J.:
Hallo Sven…
danke für den Tipp
<%fields_for
hatte ich dann auch im Buch gefunden
New und delete klappt jetzt, fehlt nur noch update…
An welche URL geht denn dein Formular jetzt? Ich habe mich bis eben auch
mit einem Routingfehler beim Update rumgeärgert (“no action
responded to 1”) bis mir auffiel, dass ich die falsche URL im Formular
verwendet hatte. Mein Beispiel:
Funktioniert nicht:
<% form_for(
@image,
:url => recipe_images_path(:recipe_id => @recipe.id),
:html => { :multipart => true }
) do |f| %>
(ergibt als Pfad /recipes/1/images)
Funktioniert:
<% form_for(
@image,
:url => recipe_image_path(
:recipe_id => @recipe.id,
:id => @image.id
),
:html => { :multipart => true }
) do |f| %>
(ergibt als Pfad /recipes/1/images/1)
Kleiner, dummer Fehler…
Viele
Grüße,Torsten
Am 01.09.2008 um 18:05 schrieb Werner L.:
Doch noch eine andere Frage:
map.resources :clients do |client|
client.resource :svassets
end
Ich finde keinen Grund warum ich in der taballarischen Darstellung
zwar
<%=h client.vorname %> #aus der Tabelle clients
aber keine Werte aus der
<%=h client.svassets.client_id %> #aus der Tabelle svassets
darstellen kann
=> undefined method `svassets’
Aber im der show und edit geht es problemlos…
def index
@clients = Client.find(:all)
def show
@client = Client.find(params[:id])
was verkehrt…?
Gruß
Hallo Torsten…
es geht jetzt alles.
Ich hatte keine Beispiele gefunden für das update von verschachtelten
resourcen… hört immer alles beim create auf…
class Client < ActiveRecord::Base
has_one :svasset, :dependent=> :destroy
class Svasset < ActiveRecord::Base
belongs_to :client
map.resources :clients do |client|
client.resource :svassets
end
<% form_for(@client) do |f| %>
<%= f.label :vorname %
<%= f.text_field :name %>
…
<%fields_for :svassets do |asset|%>
<%= asset.label :bezeichnung %>
<%= asset.text_field :bezeichnung %>
update habe ich jetzt so gemacht:
def update
@client = Client.find(params[:id])
@svassets = Svasset.find_by_client_id(params[:id])
if @client.update_attributes(params[:client])
@svassets.update_attributes(params[:svassets])
Weiß nicht ob das besonders chick ist…aber es funktioniert.
new und edit jetzt noch als partial auslagern.
Gruß
Am 01.09.2008 um 17:19 schrieb Torsten Schoenebaum:
Am 02.09.2008 um 10:05 schrieb Andreas R.:
Hallo Andreas.
Hallo Werner,
On Mon, Sep 1, 2008 at 8:32 PM, Werner L.
[email protected] wrote:
Doch noch eine andere Frage:
wo warst Du eigentlich gestern? Viele Deiner Fragen hätte man Dir wohl
gerne bei einer Bratwurst beantwortet.
- Bin Vegatarier…
- Habe etwas Termindruck…
next time…
bin ich dann ja auch etwas erfahrerner…
Gruß und danke für die Einladung
Hallo Werner,
On Mon, Sep 1, 2008 at 8:32 PM, Werner L. [email protected]
wrote:
Doch noch eine andere Frage:
wo warst Du eigentlich gestern? Viele Deiner Fragen hätte man Dir wohl
gerne bei einer Bratwurst beantwortet.
Andreas