2012-07-06 36 views
11

Tôi vừa nâng cấp trang web Rails của mình từ Rails 2 lên Rails 3.2.Tại sao `bố cục nil` không hoạt động?

On điều khiển cũ của tôi, tôi có:

class Foo::BarController < ApplicationController 
    layout nil 
    ... 
end 

Tuy nhiên bây giờ mà tôi nâng cấp lên Rails 3 có vẻ như tôi cần phải thay đổi điều đó để:

layout false 

Các tài liệu trên Rails Guides tuyên bố rằng layout nil nên làm việc tốt:

Bố cục bố cục xếp tầng xuống trong hình chữ nhật chy ...

lớp OldPostsController < SpecialPostsController
bố trí nil

Tôi đã đá quý có liên quan sau đây trong Gemfile.lock

GEM tôi

actionpack (3.2.6) 
    activemodel (= 3.2.6) 
    activesupport (= 3.2.6) 
    builder (~> 3.0.0) 
    erubis (~> 2.7.0) 
builder (3.0.0) 
erubis (2.7.0) 
haml (3.1.6) 

jquery-rails (2.0.2) 
    railties (>= 3.2.0, < 5.0) 

Đây có phải là một sự thay đổi tài liệu một nơi nào đó, hoặc là một con khỉ đá quý liên quan vá một cái gì đó?

+0

'vì một == đã được thay đổi thành ===? –

+0

có thể ... nhưng ở đâu? –

Trả lời

20

The API giải thích nó như thế này:

Nếu bố trí cụ thể là:

  • một chuỗi: chuỗi là tên mẫu
  • một biểu tượng: gọi phương thức xác định bởi các biểu tượng, mà sẽ trả lại tên mẫu
  • false: không có bố cục
  • true: tăng ArgumentError
  • nil: lực lượng mặc định hành vi bố trí với thừa kế

Vì vậy, ý nghĩa của nil thay đổi từ không bố trí để "hành vi bố trí lực lượng mặc định với thừa kế". Dường như lời giải thích trong Rails Guides là không chính xác.

+5

jeez ... này đường ray 3 nâng cấp là món quà mà không ngừng dùng –

+0

Tôi nghi ngờ nó là sự thay đổi này https://github.com/rails/rails/commit/5ad52152117ecda1166359c499bcd03ae6be3365 sẽ tweet josevalim –

+0

Vâng, có vẻ như đó là một . Chúc may mắn với nâng cấp của bạn ;-) – Mischa

Các vấn đề liên quan