2012-01-31 8 views
6

Sự khác biệt giữa việc sử dụng mẫu xem trong Rails dưới dạng '.html.haml' và đơn giản là '.haml' là gì? Ví dụ,
show.html.haml
vs
show.hamlhtml.haml vs haml trong Rails xem mẫu

Có bất kỳ lợi thế đặc biệt của việc sử dụng một trong khác không? Hay là một trong số đó là một thực hành tiêu chuẩn? Câu hỏi tương tự cũng xảy ra với các loại mẫu khác, như '.erb'.

Trả lời

5

Định dạng có vấn đề khi bạn đang sử dụng phản hồi tự động của Rails. Xem http://api.rubyonrails.org/classes/ActionController/MimeResponds.html#method-i-respond_with.

Vì vậy, ví dụ, với:

class CarsController < ActionController::Base 
    respond_to :html, :js 

    def index 
    respond_with Car.all 
    end 
end 

Ứng dụng sẽ làm cho app/views/cars/index.html.erbapp/views/index.js.erb khi xem http://localhost:3000/carshttp://localhost:3000/cars.js, tương ứng.

Ngoài ra, đây là một quy ước được thiết lập trong Rails-land, vì vậy bạn nên thực hiện điều này ngay cả khi bạn không sử dụng bộ trả lời tự động.

+1

Điều đó có nghĩa là nó được ưa thích và tiêu chuẩn để sử dụng '.html.haml' thay vì sử dụng '.haml'? – Vignesh

+0

Tôi hiểu rằng việc sử dụng định dạng rõ ràng có thể cần thiết khi sử dụng trình trả lời tự động không phải cho định dạng html. – Vignesh

+0

Có, '.html.haml' sẽ là tiêu chuẩn ưu tiên. – jtrim