在渲染部分

时间:2016-08-06 11:39:06

标签: ruby-on-rails partial-views slim-lang

我有一段代码可以呈现这样的两个部分之一(我使用slim-lang):

- case restream.service
- when 'youtube'
  = render partial: 'youtube', locals: { provider: restream.provider }
- when 'custom'
  debug = restream.provider
  = render partial: 'custom', locals: { provider: restream.provider }

_youtube.slim_custom.slim中,我只需将p = provider.name称为smth。而且,&#34; custom&#39;是通过复制粘贴来自“youtube”的代码创建的。但是,渲染Rails时会抛出错误:undefined local variable or method 'provider' for #<#<Class:0x00564028bb89d8>:0x007f92d3d0fa80>

尝试解决此问题我刚刚将_custom.slim重命名为_custom1.slim并更改了对= render partial: 'custom1', locals: { provider: restream.provider}的调用,这样就有效了!

任何人都可以解释,它是如何运作的以及“定制”的错误。名称?这是保留的名字吗?

1 个答案:

答案 0 :(得分:0)

我想也许有一个名为_custom的部分文件,但有不同的扩展名,可能是_custom.html.slim或其他类似的。因此,当您渲染部分:&#39; custom&#39;时,它可能会呈现您不想要的部分。

相关问题