9
votes

Disposition différente pour une seule page de rails

Je veux avoir une configuration différente pour une seule action de mon application de mon rails. Comment puis-je faire ça?


3 Réponses :


27
votes
# controller that calls the page
def action
  render :layout => 'other'
end

2 commentaires

Donc, dans mon cas, mon "action def" est "DEF Homepage" alias l'index. J'ai fait un fichier layout.css.scss et l'a placée dans mon dossier de stylesheets et ajouté dans votre ligne de rendu avec "Autre" étant "mise en page" et ma demande s'est écrasée. Je suis confus quant à ce que je fais mal. Mon nouveau fichier de mise en page est le même que mon fichier de mise en page d'origine.


Difficile à dire sans vérifier le code, ouvrez une nouvelle question et je peux avoir un look



19
votes
class MyController < ApplicationController
  layout "special", :only => :action

  def action
    #action code
  end
end

3 commentaires

Hmm. En fait, cela rend toutes mes autres actions pour ce contrôleur n'ont aucune mise en page. Toute façon de ramener ces dos?


Je n'ai pas essayé, mais qu'en est-il de mettre une autre ligne au top pour défaut? quelque chose comme mise en page 'normale' #: sauf =>: action


@ecologic, cela ne fonctionnera pas (dans Rails 3.0.x quand même). Vous ne pouvez avoir que la déclaration globale d'une disposition par contrôleur



9
votes
 layout :resolve_layout

  .
  .
  .
     private   
      def resolve_layout
       case action_name
         when "new"
          "alternate"
         else 
          "application"
         end
      end

0 commentaires