Rails纯文本模板

Lan*_*opp 7 ruby-on-rails erb

我想在Rails中将ERB模板呈现为纯文本.理想情况下,我可以做这样的事情:

应用程序/视图/测试/ test.txt.erb

Test
<%= @test %>
Run Code Online (Sandbox Code Playgroud)

当我尝试时,Rails抱怨以下错误:

ActionView::MissingTemplate (Missing template test/test, application/test with {:locale=>[:en], :formats=>[:html], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee]}. Searched in:
  * "/Users/landonschropp/Development/test/app/views"
):
Run Code Online (Sandbox Code Playgroud)

inf*_*sed 9

最简单的方法是采取行动:

render '/test/test.text.erb', layout: false, content_type: 'text/plain'
Run Code Online (Sandbox Code Playgroud)


ato*_*era 5

好的,我发现的方法是添加

Mime::Type.register 'text/plain', :txt 
Run Code Online (Sandbox Code Playgroud)

到环境.rb

如果需要,可以添加defaults: {format: 'txt'}选项来定义路由

Rails.application.routes.draw do
  root 'pages#home'

  get 'test', to: 'pages#test', defaults: {format: 'txt'}
end
Run Code Online (Sandbox Code Playgroud)