[rails-br] Layout

13 views
Skip to first unread message

Daniel Shimoyama

unread,
Nov 12, 2009, 10:25:26 AM11/12/09
to rail...@googlegroups.com
Pessoal, tenho uma pergunta sobre layouts, poderiam me ajudar?

Antes de tudo, eu sei que se eu criar um layout application.erb, ele irá funcionar como um layout global, e se eu quiser que uma determinada controller assuma um layout diferente simplemente crio uma para essa controller em especifico.
A minha pergunta é a seguinte, existe uma forma de determinar layouts padrões para algumas controllers?
Digo, duas ou três controllers assumirem um mesmo layout?

[]'s a todos.

Marcos Vinicius Schwaab

unread,
Nov 12, 2009, 10:41:14 AM11/12/09
to rails-br

quando voce gera um scaffold ele já gera o layout para cada controller
automatico!

Marcos Vinicius Schwaab

unread,
Nov 12, 2009, 10:42:39 AM11/12/09
to rails-br
ai voce só apaga o layout do controller que vc quer usar o controller
application (global)

Diego Brito

unread,
Nov 12, 2009, 10:45:20 AM11/12/09
to rails-br
Daniel,

Acredito que o que vc quer é apresentar layouts diferente do padrão para um controller. Simples!

def "Sua Action de Index"
render :template => 'pasta_do_seu_layout/seu_layout.html.erb'
Restante do código da sua Action... (do tipo @algumacoisa = find.....)
end

Atenciosamente, 

Diego Brito 
Consultor em Marketing Estratégico

Blog Pessoal: www.diegobrito.com.br

Pedro Fernandes Steimbruch

unread,
Nov 12, 2009, 10:47:38 AM11/12/09
to rail...@googlegroups.com
class FooController < AC::Base
    layout :seu_layout

    def index
    .
    .
    .
end

Bruno Azisaka Maciel

unread,
Nov 12, 2009, 10:48:29 AM11/12/09
to rail...@googlegroups.com
Ou vc pode fazer uma chamada para o método layout

class PostsController
  layout 'admin'

end

abraço,
Bruno Azisaka Maciel

Pedro Fernandes Steimbruch

unread,
Nov 12, 2009, 10:48:45 AM11/12/09
to rail...@googlegroups.com
Acho que tu tem que passar uma string ao invés de um simbolo.

[]'s

Will.iam Moraes

unread,
Nov 12, 2009, 11:23:17 AM11/12/09
to rail...@googlegroups.com
dentro de app/controllers/application.rb

coloque a linha layout "nomenocontroler"

2009/11/12 Pedro Fernandes Steimbruch <pedrofst...@gmail.com>

Thiago Cifani

unread,
Nov 12, 2009, 2:08:48 PM11/12/09
to rail...@googlegroups.com

class PostsController
  layout 'admin'


end

2009/11/12 Will.iam Moraes <wil.fl...@gmail.com>

Daniel Shimoyama

unread,
Nov 15, 2009, 7:38:56 PM11/15/09
to rail...@googlegroups.com
Opa, valeu a todos pelas respostas.

[]'s

2009/11/12 Thiago Cifani <cifani...@gmail.com>

Mickele Moriconi

unread,
Nov 16, 2009, 3:58:20 PM11/16/09
to rails-br
Eu gosto de criar um controller que herdará de ApplicationController.

class AdminController < ApplicationController
layout 'admin'
end

E seus controllers herdarão deste outro.

class UsersController < AdminController; end
class CustomersController < AdminController; end

Isso é bem útil quando tem regras específicas para um grupo de
controllers.

On 15 nov, 22:38, Daniel Shimoyama <shimoyama.dan...@gmail.com> wrote:
> Opa, valeu a todos pelas respostas.
>
> []'s
>
> 2009/11/12 Thiago Cifani <cifani.thi...@gmail.com>
>
>
>
> > class PostsController
> >   layout 'admin'
>
> > end
>
> > 2009/11/12 Will.iam Moraes <wil.flexra...@gmail.com>
>
> > dentro de app/controllers/application.rb
>
> >> coloque a linha layout "nomenocontroler"
>
> >> 2009/11/12 Pedro Fernandes Steimbruch <pedrofsteimbr...@gmail.com>

Renato

unread,
Nov 18, 2009, 9:12:06 AM11/18/09
to rail...@googlegroups.com
     Vamos supor que você tenha 2 layouts, um para o front end e outro para a parte administrativa, vamos chamar de frontend.erb e admin.erb
     Para usar o layout admin.erb em vários controllers, basta adicionar no começo do controler, antes dos métodos, o código layout "admin", todos os controllers que tiverem esse código vai usar o layout admin.

Exemplo

class IndexController < AppplicationController
   layout 'admin'

   def index
   end

   def list
   end
end

Você também pode usar vários layouts no mesmo controller, pra isso você manda o  método referente a determinada página, renderizar determinado layout

Exemplo

class IndexController < AppplicationController
   def index
      render :layout => 'admin'
   end

   def list
        render :layout => 'admin'

   end
end
    Espero que tenha sido isso que você tenha perguntado. Ajudei ?

Abraços


From: Daniel Shimoyama <shimoyam...@gmail.com>
To: rail...@googlegroups.com
Sent: Thu, November 12, 2009 1:25:26 PM
Subject: [rails-br] Layout

Daniel Shimoyama

unread,
Nov 19, 2009, 12:13:14 PM11/19/09
to rail...@googlegroups.com
Ajudou muito!!!
[]'s a todos

2009/11/18 Renato <r...@stones.com>
Reply all
Reply to author
Forward
0 new messages