我有一段代码可以呈现这样的两个部分之一(我使用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}
的调用,这样就有效了!
任何人都可以解释,它是如何运作的以及“定制”的错误。名称?这是保留的名字吗?
答案 0 :(得分:0)
我想也许有一个名为_custom的部分文件,但有不同的扩展名,可能是_custom.html.slim或其他类似的。因此,当您渲染部分:&#39; custom&#39;时,它可能会呈现您不想要的部分。