2011-04-22 11 views
5

Tôi đang sử dụng Mustache trong Rails 3 với this gem và tôi đang gặp phải rào cản khi cố sử dụng Mustache trong trường hợp tôi thường sử dụng yield :parameter.Rails Năng suất Với ​​thông số trong Mustache

<html> 
    <head> 
    <title><%= yield :page_title %></title> 
    </head> 
</html> 

Hiện bài xem:

<% content_for :page_title do %> 
    <%= SettingsList.site_title + " " + @post.title %> 
<% end %> 

Có cách nào để tái tạo hành vi này với Moustache? Dường như có thể có một cách để làm việc này ra khi mẫu được biên soạn:

mustache = MustacheClass.new 
mustache[:yield_page_title] = content_for(:page_title) 

Nhưng có vẻ như đó sẽ là khó khăn khi phải làm việc với thiết lập hiện tại của tôi bằng cách sử dụng đá quý mustache_rails3.

Tôi cũng mở cho bất kỳ câu trả lời nào chỉ ra cách tốt để tránh hoàn toàn cách tiếp cận này yield. Nó sẽ có thể ném đủ logic vào một thẻ {{page_title}} để xử lý tất cả các trường hợp khác nhau của tôi trong việc đặt tiêu đề, nhưng điều này có vẻ xa lý tưởng.

Trả lời

0

Tất cả các logic cho mẫu Mustache của bạn phải được đưa vào tệp xem. Ví dụ: mẫu show.html.mustache của bạn phải có tệp xem Ruby được liên kết có tên là show.rb nơi bạn có thể đặt bất kỳ logic tùy chỉnh nào cho mẫu.

Mẫu sẽ sử dụng một {{page_title}} gọi

<html> 
    <head> 
    <title>{{page_title}}</title> 
    </head> 
</html> 

Và file xem sẽ xác định một phương pháp page_title để điền vào các mẫu

# inside show.rb 
def page_title 
    SettingsList.site_title + " " + @post.title 
end