2015-01-02 36 views
1

我在Rails 3項目中使用ActiveScaffold。我有產生默認AS意見的佈局,配置方式如下:將其他參數傳遞給ActiveScaffold視圖

佈局/ admin.html.erb

<%= render :partial => "layouts/admin_header" %> 
[some html] 
<%= yield %> 
[more html] 
<%= render :partial => "layouts/admin_footer" %> 

然後我用一個BaseController,這使得這種佈局

class Admin::BaseController < ApplicationController 
    [some global settings/restrictions] 
    layout "admin" 
end 

現在,在我的特定型號的控制器,我只是用:

class Admin::UsersController < Admin::BaseController 

    active_scaffold :user do |config| 
    config.columns[:id].label = "#" 
    [more config] 
    end 

    def conditions_for_collection 
    [setting some conditions] 
    end 
end 

這就是所有工作鰭片即現在我想要做的是傳遞並顯示佈局/管理視圖的參數。

通常,在控制器操作中設置實例變量就足夠了,但控制器操作在AS內部。如果我將它設置在其他地方,它不會傳遞到視圖。所以,我想實現控制器動作(我想改變用戶列表動作顯示):

def list 
    @my_var = "test" 
    render :active_scaffold => "users" 
end 

我希望能夠告訴AS使用它的默認視圖渲染列表與render :active_scaffold => "users",但不幸的是,這是行不通的,我越來越

ActionView::MissingTemplate 
Missing template admin/users/index, admin/base/index, application/index, active_scaffold_overrides/index with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :haml]} 

如果我離開了渲染調用,我收到了同樣的結果。所以我的問題是:如何在不覆蓋控制器方法的情況下傳遞參數,或者指示AS在控制器操作中使用默認視圖?

回答

0

這是相當簡單的,如果你找到合適的doc page

def list_respond_to_html 
    @my_var = "test" 
    render :action => :list 
end 

默認情況下,ActiveScaffold響應HTML,JSON,JS,XML和YAML啞劇。方法格式爲<action>_respond_to_<format>