<p>Add new phone: (More phones can be added later)<br />
<input type="text" id="phones[new][phone]" name="phones[new][phone]"
value="">
</p>
What, exactly, is the [phone] in phones[#{phone.id][phone]? I know
phones is the db phones. I know phone id is the PK (and for
phones[new][phone]. What is phone though? Also, in phones[new][phone],
what is new creating/doing?
What, exactly, is the [phone] in phones[#{phone.id][phone]? I know
phones is the db phones. I know phone id is the PK (and for
phones[new][phone]. What is phone though? Also, in phones[new]
[phone],
what is new creating/doing?
This is Rails parameter naming converion
phones[#{phone.id}][phone] means that the corresponding input element
will (in the controller) be at params['phones']['25']['phone']
(assuming the id was 25).
The 'new' is presumably just a convention by whoever wrote this code
to indicate a new record.
@params["person"]["id"] could be person[#{id}]. Of course, Person.find
is used because it will return a person record with the corresponding
id.
I am assuming that since Ruby can go from singular to plural, it is
smart enough to know that People.find wants a single record that can
only be found in the people db (as People represents multiple persons).
Ah, so basically foo[#{a}][b] is nothing more but Ruby conventional
syntax for
@params['foo']['#{a}][b]
sort of. it's the parameter name that will make the parameters arrive
in that way.
I am assuming that since Ruby can go from singular to plural, it is
smart enough to know that People.find wants a single record that can
only be found in the people db (as People represents multiple
persons).
Yes - rails knows that the table backing the Person class is people