Ruby on rails Ruby of Rails无法呈现没有前导字母字符的片段(仅使用数字或前导数字)

Ruby on rails Ruby of Rails无法呈现没有前导字母字符的片段(仅使用数字或前导数字),ruby-on-rails,ruby,ruby-on-rails-4,filenames,renderpartial,Ruby On Rails,Ruby,Ruby On Rails 4,Filenames,Renderpartial,Rails无法加载只有数字的部分,或者如果数字在字母字符之前,我不确定这是我的错误,还是渲染的预期行为 我有: 和两部分: 页面/公告/_none.html.erb 页面/公告/_2014_09_01.html.erb 始终忽略数字文件名,并加载“无”部分 当我将其更改为具有前导字母字符时,所有内容都已修复: 与: 页面/公告/_none.html.erb 页面/公告/_新闻_2014_09_01.html.erb 有人能解释一下这一行为或我的错误吗?如果您删除了rescue,您可能会收到一条更

Rails无法加载只有数字的部分,或者如果数字在字母字符之前,我不确定这是我的错误,还是渲染的预期行为

我有:

和两部分: 页面/公告/_none.html.erb 页面/公告/_2014_09_01.html.erb

始终忽略数字文件名,并加载“无”部分

当我将其更改为具有前导字母字符时,所有内容都已修复:

与: 页面/公告/_none.html.erb 页面/公告/_新闻_2014_09_01.html.erb


有人能解释一下这一行为或我的错误吗?

如果您删除了rescue,您可能会收到一条更有用的错误消息:

render partial: '909'
给出:

部分名称909不是有效的Ruby标识符;确保部分名称以小写字母或下划线开头,后跟字母、数字和下划线的任意组合

这似乎是因为ActionView在内部将部分名称转换为符号


我最近碰到了这个。对我来说,在部分名称上添加前缀并不是一个很大的负担,希望你的情况也是如此。

如果删除rescue,你可能会收到一条更有用的错误消息:

render partial: '909'
给出:

部分名称909不是有效的Ruby标识符;确保部分名称以小写字母或下划线开头,后跟字母、数字和下划线的任意组合

这似乎是因为ActionView在内部将部分名称转换为符号


我最近碰到了这个。对我来说,在部分名称上加前缀并不是一个很大的负担,希望你也一样。

谢谢Dave!很好的解释。奇怪的是,它怎么说部分可以以下划线或小写字母开头,并不是说它必须以下划线和小写字母开头。@Josh事实上它是准确的-如果它以另一个下划线开头,你就可以了:909.to_sym==:909但是_909.to_sym==:_909@Josh不奇怪;不需要两者都开始,需要两者都开始。谢谢戴夫!很好的解释。奇怪的是,它怎么说部分可以以下划线或小写字母开头,并不是说它必须以下划线和小写字母开头。@Josh事实上它是准确的-如果它以另一个下划线开头,你就可以了:909.to_sym==:909但是_909.to_sym==:_909@Josh不奇怪;它不需要从两者开始,它需要从两者中的任何一个开始。