为什么Rails找不到我的打印布局文件

时间:2013-01-31 09:33:49

标签: ruby-on-rails views declarative-authorization

我有......

/config/routes.rb

resources :documents do
   member do
      get :print
   end
end

/config/authorization_rules.rb

role :admin do
    has_permission_on [:documents], :to => [:print]
  end

应用/控制器/ documents_controller.rb

def print
  render :layout => "print"
end

应用/视图/布局/ print.html.haml

!!!
%html
  %body
    = yield

我想从多个控制器中定义的打印操作访问此打印布局文件。

为什么,当我以管理员身份登录并转到http://localhost:3000/documents/1/print时,是否会收到此错误?

Missing template documents/print, application/print with {:locale=>[:en], :formats=>[:html], :handlers=>[:erb, :builder, :coffee, :haml]}. Searched in:
  * "/Users/steven/Dropbox/testivate/app/views"
  * "/Users/steven/.rvm/gems/ruby-1.9.2-p320/gems/declarative_authorization-0.5.6/app/views"

print.html.haml文件移至/app/views/application//app/views/documents/会更改错误,但不会将其删除。

1 个答案:

答案 0 :(得分:0)

这是因为您已经定义了布局,但可能没有用于打印操作的模板文件。您的布局文件尝试从(打印操作)模板中生成不存在的内容。您还需要指定要渲染的(动作)模板,或者只需添加app/views/documents/print.html.haml。另外,为避免混淆,请重命名布局文件。