Zwei Parameter auf eine Model mappen


#1

Prosit Neujahr, ich hoffe ihr habt jetzt wieder eine klaren Kopf.
Ich hätte da mal eine Frage gehabt.

ich habe ein Forumlar mit dem zwei Parameter abgefragt werden und in den
Controller übergeben werden

_form.html.erb
<%= form_tag :controller => ‘name’, :action => ‘create’ %>
<%= text_field ‘name’, ‘name’ %>
<%= text_field ‘vname’, ‘vname’ %>
<%= submit_tag ‘search’ %>

Leider kann ich nicht beide Params speichern.

ImController
def create
@name = Name.new(params[:name])
#@name = Name.new(params[:name, :vname] <— hier liegt bestimmt
der Fehler
if @name.save
flash[:notice] = “Thanks for adding!”
else
flash[:error] = “Sorry, something went be wrong !”
format.html { render :action => “new” }
end

Hilfe !

Was mache ich falsch? wie wäre es denn richtig?

Thanx

Mario

Mario Schröder | http://www.poppster.de
Office: +49 361 2152062
Phone: +49 34464 62301 Cell: +49 163 27 09 807
http://www.xing.com/go/invite/6035007.9c143c


#2

@name = Name.new(params[:name, :vname] <— hier liegt bestimmt der Fehler

Richtig!

params hat die Methode [] definiert
(http://www.ruby-doc.org/core/classes/Hash.html#M002876):
hsh[key] => value

Element Reference—Retrieves the value object corresponding to the key
object. If not found, returns the a default value (see Hash::new for
details).

 h = { "a" => 100, "b" => 200 }
 h["a"]   #=> 100
 h["c"]   #=> nil

Nicht definiert ist allerdings hsh[‘a’, ‘b’], was ungefaehr das ist, was
du versucht hast.

Was mache ich falsch? wie wäre es denn richtig?

Richtig waere also:

@name = Name.new(params[:name], params[:vname])

Ad multos annos - multos ad annos, Rainer