首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rails 7- render_to_string - MissingTemplate

Rails 7- render_to_string - MissingTemplate
EN

Stack Overflow用户
提问于 2022-06-02 16:26:53
回答 1查看 588关注 0票数 3

在将Rails应用程序从Rails 6升级到7之后,我面临一个问题。当我尝试render_to_string一个模板时,我收到的是ActionView::MissingTemplate异常。

由于这个方法运行良好,我不得不认为Rails 7有一些新的方法,但我无法找到。

我的代码如下:

控制器

代码语言:javascript
复制
class SomethingController < ApplicationController

  ...
  def my_action
     html_string = render_to_string(template: 'something/template.html.erb', locals: {id: params[:id]})
  end
  
end

我的期望(以及我以前的行为)是返回处理过的模板视图,但我收到的是例外:

代码语言:javascript
复制
ActionView::MissingTemplate (Missing template something/template.html.erb with {:locale=>[:"pt-BR", :pt], :formats=>[:pdf], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :jbuilder]}.

Searched in:
  * "/Users/user/rails/rn_igreja/app/views"
  * "/Users/user/.asdf/installs/ruby/3.1.0/lib/ruby/gems/3.1.0/gems/devise-i18n-1.10.2/app/views"
  * "/Users/user/.asdf/installs/ruby/3.1.0/lib/ruby/gems/3.1.0/gems/devise-4.8.1/app/views"
  * "/Users/user/.asdf/installs/ruby/3.1.0/lib/ruby/gems/3.1.0/gems/actiontext-7.0.1/app/views"
  * "/Users/user/.asdf/installs/ruby/3.1.0/lib/ruby/gems/3.1.0/gems/actionmailbox-7.0.1/app/views"
):

app/controllers/something_controller.rb:16:in `block in my_action'
app/controllers/something_controller.rb:12:in `my_action'

其他详情:

  • Ruby版本: 3.1.0
  • Rails版本: 7.0.2

我真的很想知道我在这里错过了什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-06-15 17:30:35

@user973254帮我解决了这个问题,谢谢你的评论:

这个答案可能会有帮助:rails render_to_string giving errors with partial view

现在还需要使用formats:方法传递render_to_string参数。

我对代码的补充,让它起作用的是:

parameter

  • Removing

  • 添加了formats:

  • template: layout: false'html.erb'部分(我还没有对其进行诚实的测试,以检查这一问题是否对

起关键作用)

下面我展示了工作的代码。

代码语言:javascript
复制
class SomethingController < ApplicationController

  ...
  def my_action
      html_string = render_to_string(
        template: 'something/template',
        formats: [:html],
        locals: { id: params[:id] },
        layout: false
      )
  end
  
end
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72479400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档