0

我有...

/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/更改错误,但不会摆脱它。

4

1 回答 1

0

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

于 2013-01-31T10:04:04.630 回答