Jestem nowy w rubinach na szynach i pracuję z wersją 2.3 na mac osx. Próbuję utworzyć tę samą funkcjonalność, którą tworzy rusztowanie, ale na własną rękę. Stworzyłem kontroler "post", widok i model. kontroler post, mam następujący:Zmienna instancji a symbol w ruby na szynach (forma_for)
class PostController < ApplicationController
def index
end
def new
@post = Post.new
end
end
w new.html.erb, mam następujący:
<h1>New Post</h1>
<% form_for :post do |f| %>
<%= f.text_field :title %>
<% end %>
zauważyłem, że w rusztowaniu wygenerowany kod, wykorzystanie zmiennej instancji @post dla pomocnika form_for. dlaczego używają zmiennej instancji w wygenerowanej formie szkieletu, jeśli przekazanie symbolu: post w form_for robi dokładnie to samo, podczas gdy symbol wymaga zmiany konfiguracji tras?
bardzo dziękuję, yuval
dziękuję bardzo. to wyjaśnia. :) –
Znaczenie tego ukrytego _method polega na tym, że przeglądarki nie obsługują metod put i delete, więc musisz powiadomić aplikację, gdy metoda post ma być put lub delete, na szczęście szyny magicznie obsługują to dla nas – ErsatzRyan
Musisz użyć @post na nowym formularzu, a potrzebujesz go, nawet jeśli twoje formularze są oddzielne. W przeciwnym razie, gdy utworzysz nowy wpis z nieprawidłowymi danymi i wróci do nowego formularza z błędami sprawdzania poprawności, nie wypełni on wprowadzonych informacji. –