2015-02-02 5 views
1

Как мы все знаем, в ruby on rails, все виды простирается от application/application.html.erb, большую часть времени это здорово, как, например application.html.erb как следующие:может просматривать не расширение "application/application.html.erb" в ruby ​​on rails?

<html> 
<head></head> 

<body> 

<%= render 'layouts/header' %> 
<%= yield %> 

</body> 
</html> 

Я не нужно писать тот же код в каждом представлении опять же, но иногда, просто на вид является особенным, этот вид отличается от представления, например, я не хочу добавлять <%= render 'layouts/header' %> в этом представлении.

Может быть, параметр просто поможет мне в этой ситуации, но я хочу знать, может ли какой-либо вид не распространяться от application/application.html.erb?

+0

ли мой ответ поможет вам? –

+0

Я только что опубликовал статью, относящуюся к этому вопросу, возможно, вы хотели бы взглянуть: http://alma-connect.github.io/techblog/2015/02/layout-and-rendering-in-rails.html – rubish

ответ

4

Виды не распространяются от 'application.html.erb, они используют его как макет по умолчанию. Вы можете изменить его, конечно же, с помощью layout метода в контроллере (или layout опции в render метод), например:

# this changes the default layout in every views of `AdminController` (and all other controllers that inherit from `AdminController`): 
class AdminController < ApplicationController 
    layout :admin 
    # ... 
end 
# this changes the layout of specific action: 
class SomethingController < ApplicationController 
    # ... 
    def some_action 
    # ... 
    render layout: :some_layout 
    end 
end 

Вот ссылка: http://guides.rubyonrails.org/layouts_and_rendering.html

Смежные вопросы