comment form_for travaille dans Ruby on Rails

Je suis un newbie. J'ai lu la documentation de l'API. Mais ne comprends toujours pas comment form_for œuvres.

Tout d'abord, à partir de Ruby on Rails Tutoriel, la forme de bouton et de suivi:

<%= 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 %>

Je comprends current_user.relationships.build(followed_id: @user.id) signifie un nouveau record. Mais pourquoi ne pouvons-nous pas juste de présenter et de contrôleur de déclenchement de l'enregistrer sans hidden_field? Pourquoi avons-nous encore besoin de poster followed_id de contrôleur?

D'autre part, dans hidden_field, ce qui ne :followed_id signifie? Je crois que c'est un symbole, c'est à dire qu'il est égal à seulement "followed_id" pas une variable d'id. Si ce n'est que le nom du champ de saisie, puis quelle est sa valeur?

Troisièmement, comment ne form_for savoir si la demande doit être envoyée? Le contrôleur et l'action de la form_for publierons?

Quatrième, comment ne params travailler avec form_for? En ce bouton et de suivi en cas, params[:relationship][:followed_id] sera de retour @user.id dans le contrôleur. Comment sait-il le premier attribut de hachage est :relationship? Nous n'avons pas mentionné form_for :relationship ni form_for @relationship.

Je sais que ces questions peuvent être très bête, mais je suis vraiment coincé. Toute aide sera appréciée.

OriginalL'auteur Ivan Wang | 2013-12-10