Tôi mới dùng ruby trên đường ray và đang làm việc với phiên bản 2.3 trên mac osx. Tôi đang cố gắng tạo ra cùng một chức năng mà một giàn giáo tạo ra, nhưng theo cách riêng của tôi. tôi đã tạo bộ điều khiển, chế độ xem và mô hình "bài đăng". trong bài điều khiển, tôi đã điều sau đây:biến thể hiện so với ký hiệu trong ruby trên đường ray (form_for)
class PostController < ApplicationController
def index
end
def new
@post = Post.new
end
end
trong new.html.erb, tôi đã điều sau đây:
<h1>New Post</h1>
<% form_for :post do |f| %>
<%= f.text_field :title %>
<% end %>
tôi nhận thấy rằng trong đoạn đầu đài mã được tạo ra, việc sử dụng các instance variable @post cho trình trợ giúp form_for. tại sao họ sử dụng biến thể hiện trong hình thức tạo ra giàn giáo nếu đi qua biểu tượng: đăng trong form_for không chính xác điều tương tự, trong khi một biểu tượng đòi hỏi phải thay đổi cấu hình của các tuyến đường?
thank you very much, Yuval
cảm ơn bạn rất nhiều. Điều đó làm cho nó rõ ràng :) –
tầm quan trọng của _method ẩn đó là các trình duyệt không hỗ trợ các phương thức put và delete, do đó bạn phải cho ứng dụng biết khi một phương thức post có nghĩa là đặt hoặc xóa, các đường ray may mắn xử lý một cách kỳ diệu điều này cho chúng tôi – ErsatzRyan
Bạn cần sử dụng @post trên biểu mẫu mới và bạn cần nó ngay cả khi biểu mẫu của bạn là riêng biệt. Nếu không, khi bạn tạo một bài đăng mới có dữ liệu không hợp lệ và nó sẽ quay trở lại biểu mẫu mới có lỗi xác thực, nó sẽ không điền vào thông tin bạn đã nhập. –