Các release notes for Rails 3.0 bao gồm sự thay đổi này:Chính xác người trợ giúp chặn nội dung nào đã thay đổi hành vi trong Rails 3?
7.4.2 Helpers với khối
Helpers như
form_for
hoặcdiv_for
chèn nội dung từ việc sử dụng khối<%=
bây giờ:<%= form_for @post do |f| %> ... <% end %>
riêng của bạn những người trợ giúp thuộc loại đó được mong đợi trả về một chuỗi, thay vì phụ thêm vào bộ đệm đầu ra bằng tay.
Những người trợ giúp làm điều gì đó khác, như
cache
hoặccontent_for
, không bị ảnh hưởng bởi thay đổi này, họ cần<%
như trước đây.
Chúng tôi đang trong quá trình di chuyển ứng dụng web từ Rails 2.3.18 sang Rails 3.1.12 và sẽ rất hữu ích nếu có danh sách đầy đủ những người trợ giúp đã thay đổi để chúng tôi có thể kiểm tra tất cả các lần xuất hiện của chúng trong mã nguồn của chúng tôi, nhưng tôi đang gặp khó khăn khi tìm danh sách có thẩm quyền loại này.
Tôi đã thử xem qua lịch sử git của rails project, nhưng dường như có nhiều cam kết với các thay đổi có liên quan và chúng không được nhóm rõ ràng trên nhánh cụ thể. Ví dụ, nó có vẻ là rõ ràng rằng danh sách này bao gồm:
form_for
form_tag
fields_for
field_set_tag
... từ 7b622786f,
link_to
... ám chỉ trong e98474096 và:
div_for
content_tag_for
... ám chỉ trong e8d2f48cff
remote_form_for
.... ám chỉ trong 0982db91f, mặc dù nó được loại bỏ trong Rails 3.
Tuy nhiên, tôi chắc chắn đó không phải là hoàn chỉnh - bất cứ ai có thể cung cấp một danh sách đầy đủ?
[Đơn giản hóa đường dẫn chặn người giúp đỡ bởi Yehuda Katz] (http://yehudakatz.com/2009/08/31/simplifying-rails-block-helpers-with-a-side-of-rubinius/) chứa một số thông tin về lý do đằng sau quyết định và chi tiết về việc triển khai cấp thấp. Nó có thể cung cấp một số manh mối về nơi để tìm câu trả lời, thật đáng buồn nó không chứa một danh sách đầy đủ mà những người giúp đỡ đã thay đổi. –