Có thể lấy tên của chế độ xem hiện được hiển thị từ bố cục bên trong không?Làm cách nào để lấy tên chế độ xem hiện tại từ mẫu bố cục trong Rails?
Trả lời
tôi đã làm một cái gì đó như thế này cho css namespacing:
# config/initializers/action_view.rb
ActionView::TemplateRenderer.class_eval do
def render_template_with_tracking(template, layout_name = nil, locals = {})
# with this gsub, we convert a file path /folder1/folder2/subfolder/filename.html.erb to subfolder-filename
@view.instance_variable_set(:@_rendered_template, template.inspect.gsub(/(\..*)/, '').split('/')[-2..-1].join('-'))
out = render_template_without_tracking(template, layout_name, locals)
@view.instance_variable_set(:@_rendered_template, nil)
return out
end
alias_method_chain :render_template, :tracking
end
# application.html.erb
<body class="<%= :@_rendered_template %>" >
Phương pháp phương pháp active_template_virtual_path trả về mẫu như một tên trong các hình thức sau đây "điều khiển/hành động"
class ActionController::Base
attr_accessor :active_template
def active_template_virtual_path
self.active_template.virtual_path if self.active_template
end
end
class ActionView::TemplateRenderer
alias_method :_render_template_original, :render_template
def render_template(template, layout_name = nil, locals = {})
@view.controller.active_template = template if @view.controller
result = _render_template_original(template, layout_name, locals)
@view.controller.active_template = nil if @view.controller
return result
end
end
Không hoạt động cho tôi. Tôi đang cố gắng để '<% = controller.active_template%>' trong mẫu. Nó nói 'phương thức chưa xác định' active_template'' – Evgenii
<% __FILE__%> sẽ cho bạn biết tên mẫu hiện tại – Naveed
Điều này nói: "ActionView :: Uniledialized :: FILE" – user1934428
Tôi đã có một tương tự câu hỏi. Tôi tìm thấy <%= params[:controller] %>
và <%= params[:action] %>
cho phù hợp với nhu cầu của tôi, đó là thêm tên bộ điều khiển và tên hành động làm các lớp trên thẻ body.
Chỉ trong trường hợp giúp mọi người. :)
Sử dụng <% __FILE__ %>
để có được những đường dẫn tập tin đầy đủ về quan điểm hiện tại, nhưng bạn chỉ có thể sử dụng nó từ trong tập tin riêng của mình mà không cần viết một số người giúp đỡ
Tôi hiện đang sử dụng một phiên bản sửa đổi của Peter Ehrlich của dung dịch. Chuỗi kết quả có dạng là controller_name/view_name
, ví dụ: users/new
, có nghĩa là nó có thể được chuyển trực tiếp đến render
sau này hoặc được thay đổi để phù hợp với các mục đích sử dụng khác. Tôi đã chỉ thử điều này với Rails 4,2, mặc dù theo như tôi biết nó nên làm việc tất cả các cách trở lại vào 3. x es.
ActionView::Base.class_eval do
attr_accessor :current_template
end
ActionView::TemplateRenderer.class_eval do
def render_template_with_current_template_accessor(template, layout_name = nil, locals = {})
@view.current_template = template.try(:virtual_path)
render_template_without_current_template_accessor(template, layout_name, locals)
end
alias_method_chain :render_template, :current_template_accessor
end
Vì mục đích gỡ lỗi, bạn có thể sử dụng gem 'current_template' từ here.
Đá quý này kiểm tra tệp nhật ký và tên tệp hiển thị của chế độ xem/mẫu từng phần.
Ví dụ:
Ngoài ra, bạn có thể chỉ cần thêm dòng này
<%= "#{`tail log/development.log`}".scan(/\s[a-z]+\/\S+/) %>
để bố trí của bạn/application.html.erb.
- 1. Android: Nhiều chế độ xem cho chế độ xem tùy chỉnh với bố cục hiện tại
- 2. thêm bố cục làm chế độ xem trong Android
- 3. Làm cách nào để ngăn các chế độ xem chồng chéo trong bố cục tương đối?
- 4. Chế độ xem tùy chỉnh trong bố cục xml
- 5. Làm cách nào để căn giữa Chế độ xem bên trong Bố cục Android?
- 6. Làm cách nào để căn giữa hai chế độ xem trong bố cục tương đối?
- 7. Cung cấp bố cục mặc định cho các chế độ xem trong không gian tên
- 8. Cách thêm chế độ xem tùy chỉnh vào bố cục?
- 9. android - cách xóa chế độ xem bố cục tuyến tính
- 10. cách thêm chế độ xem vào bố cục XML android
- 11. Chế độ xem OpenGL bên trong bố cục
- 12. Làm cách nào để chuyển đổi chế độ xem từ trong chế độ xem?
- 13. Làm cách nào để lấy khung của chế độ xem trong chế độ xem khác?
- 14. android Làm cách nào để thêm chế độ xem khi bắt đầu bố cục?
- 15. onDraw() trên Chế độ xem vẽ phía sau bố cục
- 16. Tại sao chế độ xem con kế thừa giá trị alpha từ bố cục gốc
- 17. Không thể làm cho chế độ xem con rộng hơn bố mẹ trong Bố cục Android
- 18. Mở rộng bố cục hiện tại trong Rails
- 19. Android: Chế độ xem tùy chỉnh dựa trên bố cục: cách thực hiện?
- 20. .NET MVC Bố cục chế độ xem tùy chỉnh
- 21. Chế độ xem dao cạo không có bố cục
- 22. cách sử dụng chế độ xem được khai báo trong một tệp xml bố cục trong bố cục khác
- 23. Bố cục chế độ xem sau khi đổi kích thước
- 24. Sửa lại chế độ xem trong Android - di chuyển từ một bố cục này sang một bố cục khác
- 25. Tại sao tên tệp bố cục Android bị hạn chế?
- 26. Có cách nào để đặt chế độ xem hơi bên ngoài bố cục gốc không?
- 27. Làm cách nào để chuyển sang chế độ xem chương trình của người dùng hiện tại trong Rails?
- 28. Cách nhận URL trang hiện tại trong chế độ xem?
- 29. Sử dụng bố cục XML làm chế độ xem cho lớp con Xem?
- 30. Android - Cách xóa Chế độ xem trong Bố cục (Xem thêm động)
Tại sao bạn muốn làm điều đó? –
đường ray nào? –