Ich bin neu auf Ruby on Rails und arbeite mit Version 2.3 auf Mac OSX. Ich versuche, die gleiche Funktionalität zu schaffen, die ein Gerüst schafft, aber allein. Ich habe eine "Post" -Controller, Ansicht und Modell erstellt. in post-Controller, ich habe die folgenden:Instanzvariable vs. Symbol in Ruby on Rails (form_for)
class PostController < ApplicationController
def index
end
def new
@post = Post.new
end
end
in new.html.erb, ich habe die folgenden: variable
<h1>New Post</h1>
<% form_for :post do |f| %>
<%= f.text_field :title %>
<% end %>
ich bemerkt, dass Code in dem Gerüst erzeugt wird, die Verwendung der Instanz @post für das Formular_für Helper. Warum benutzen sie die Instanzvariable in der scaffold-generierten Form, wenn sie das Symbol übergeben: post in form_for macht genau dasselbe, während ein Symbol die Konfiguration der Routen ändern muss?
vielen Dank, yuval
vielen Dank. das macht es klar :) –
Die Bedeutung dieser versteckten Methode ist, dass Browser keine Put- und Delete-Methoden unterstützen, so dass Sie die Anwendung wissen lassen müssen, wenn eine Post-Methode ein Put oder ein Delete sein soll, glücklicherweise rails magisch handhabt dies für uns – ErsatzRyan
Sie müssen @post auf dem neuen Formular verwenden, und Sie benötigen es, auch wenn Ihre Formulare getrennt sind. Andernfalls, wenn Sie einen neuen Post mit ungültigen Daten erstellen und dieser mit Validierungsfehlern zum neuen Formular zurückkehrt, werden die von Ihnen eingegebenen Informationen nicht ausgefüllt. –