将其他参数传递给活动基架视图



我在Rails 3项目中使用ActiveScaffold。我有一个产生默认 AS 视图的布局,配置方式如下:

layouts/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

这一切都工作正常。现在我想做的是传递并显示一个参数到布局/管理视图。

通常,在控制器操作@my_var = params[:some_param]中设置实例变量就足够了,但控制器操作在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 在我的控制器操作中使用默认视图?

如果您

找到合适的文档页面,这很简单:

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

默认情况下,ActiveScaffold 响应 html、json、js、xml 和 yaml mime。方法格式为<action>_respond_to_<format>

相关内容

  • 没有找到相关文章

最新更新