我有......
/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/
会更改错误,但不会将其删除。
答案 0 :(得分:0)
这是因为您已经定义了布局,但可能没有用于打印操作的模板文件。您的布局文件尝试从(打印操作)模板中生成不存在的内容。您还需要指定要渲染的(动作)模板,或者只需添加app/views/documents/print.html.haml
。另外,为避免混淆,请重命名布局文件。