我在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在控制器操作中使用默認視圖?