wie form_for arbeitet in Ruby on Rails

Ich bin ein newbie. Ich habe Lesen der API-Dokumentation. Aber immer noch nicht verstehen, wie form_for funktioniert.

Erstens von Ruby on Rails Tutorial, das Formular für die follow-Taste:

<%= form_for(current_user.relationships.build(followed_id: @user.id)) do |f| %>
  <div><%= f.hidden_field :followed_id %></div>
  <%= f.submit "Follow", class: "btn btn-large btn-primary" %>
<% end %>

Verstehe ich current_user.relationships.build(followed_id: @user.id) bedeutet einen neuen Rekord. Aber warum können wir nicht einfach Unterwerfen und trigger-Steuerung, um den Datensatz speichern, ohne hidden_field? Warum müssen wir noch immer auf post followed_id controller?

Zweitens, in hidden_field, was bedeutet :followed_id bedeutet? Ich glaube, das ist ein symbol, D. H. es entspricht nur "followed_id" nicht eine variable id. Wenn, dass ist nur der name des input Feldes ist, was ist dann Ihr Wert?

Drittens, wie lässt form_for wissen, wo die Vorlage gesendet werden soll? Die controller und action, die form_for veröffentlichen?

Vierten, wie funktioniert params Arbeit mit form_for? In diesem follow-Taste Fall params[:relationship][:followed_id] zurück @user.id im controller. Woher weiß er das erste hash-Attributs ist :relationship? Wir haben weder erwähnt form_for :relationship noch form_for @relationship.

Ich weiß, diese Frage ist sehr dumm, aber ich bin wirklich stecken. Jede Hilfe wird geschätzt.

InformationsquelleAutor Ivan Wang | 2013-12-10

Schreibe einen Kommentar