首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Layout render only when I write :layout =>‘=>’on every resource

Layout render only when I write :layout =>‘=>’on every resource
EN

Stack Overflow用户
提问于 2012-02-07 07:16:49
回答 1查看 465关注 0票数 0

代码:https://github.com/werner/inmailing,我试图在控制器中使用继承,但是由于某种原因,布局以这种方式工作,我猜我做错了什么,但我看不到它。

代码语言:javascript
运行
复制
class StandardController < ApplicationController
  attr_accessor :model, :url
  handles_sortable_columns

  def index
    @records = @model.all
    @q = model.search params[:q]
    @records = @q.result(:distinct => true).order(sortable_column_order).paginate(:page => params[:page], :per_page=>10)

    #I'm not sure why I have to do this on every method
    #but if I don't rails doesn't recognize layout
    render :layout => 'application'
  end

  def new
    @record = @model.new
    render :layout => 'application'
  end

  def edit
    @record = @model.find(params[:id])
    render :layout => 'application'
  end

  def show
    @record = @model.find(params[:id])
    render :layout => 'application'
  end

  def create
    @record = @model.new(params[@model.to_s.downcase])

    respond_to do |format|
      if @record.save
        format.html { redirect_to @url, notice: 'Successfully created.' }
      else
        format.html { render action: "new" }
      end
    end
  end

  def update
    @record = @model.find(params[:id])

    respond_to do |format|
      if @record.update_attributes(params[@model.to_s.downcase])
        format.html { redirect_to @url, notice: 'Successfully updated.' }
      else
        format.html { render action: "edit" }
      end
    end
  end

  def destroy
    @record = @model.find(params[:id])
    @record.destroy

    respond_to do |format|
      format.html { redirect_to @url }
    end
  end
end


class DepartmentsController < StandardController 

  before_filter do
    @url = departments_url
    @edit_record_path = lambda {|record| edit_department_path(record) }
    @new_record_path = new_department_path
    @title = "Departments" 
  end

  def initialize
    @model = Department
  end
end

布局:

代码语言:javascript
运行
复制
!!! XML
!!!
%html
  %head
    %title Inmailing
    = stylesheet_link_tag 'application'
    = stylesheet_link_tag 'blueprint/screen.css', :media => 'screen, projection'
    = stylesheet_link_tag 'blueprint/print.css', :media => 'print'
    /[if IE]
      = stylesheet_link_tag 'blueprint/ie.css', :media => 'screen, projection'    
    = csrf_meta_tags
  %body
    = yield
    = javascript_include_tag 'application'
EN

回答 1

Stack Overflow用户

发布于 2012-02-07 07:21:54

可以在application_controller中指定布局。

只需添加这一行。应用程序必须位于布局/application.html.erb中

代码语言:javascript
运行
复制
layout 'application'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9168800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档