【问题标题】:Rails irregular Inflector errors with routing and tablenameRails 不规则的 Inflector 错误与路由和表名
【发布时间】:2016-07-25 23:41:39
【问题描述】:

我需要一个 Genus 模型,它应该复数到属。我将 Rails 4.2.1 与 Ruby 2.2.1 和 SQLServer 2014 一起使用。我在 config/initializers/inflections.rb 中添加了一个 Inflector:

ActiveSupport::Inflector.inflections(:en) do |inflect|
  inflect.irregular 'genus', 'genera'
end

根据this question。我检查了 Rails 控制台,它正确地进行了单数化和复数化,当我运行时

rails generate scaffold Genus name:string

表名被正确地称为属,看起来事情是正确的。

但是,当我尝试实际访问视图时,我得到了错误。对于索引页 (http://0.0.0.0:3000/genera),当它试图访问一个名为 genus 的表时,我从数据库中收到一个错误:

TinyTds::Error: Invalid object name 'genus'.: EXEC sp_executesql N'SELECT [genus].* FROM [genus]'
Extracted source (around line #14):
12
13  <tbody>
14    <% @genera.each do |genus| %>
15      <tr>
16        <td><%= genus.name %></td>
17        <td><%= link_to 'Show', genus %></td>

对于新的 (http://0.0.0.0:3000/genera/new),我得到一个路径错误:

undefined method `genus_index_path' for #<#<Class:0x007fd9b9604380>:0x007fd993e8a2f0>
Extracted source (around line #1):                 
1 <%= form_for(@genus) do |f| %>
2   <% if @genus.errors.any? %>
3     <div id="error_explanation">
4       <h2><%= pluralize(@genus.errors.count, "error") %> prohibited this genus from being saved:</h2>
5 
6       <ul>

Trace of template inclusion: app/views/genera/new.html.erb

我显然做错了什么,但我找不到任何搜索此类错误的内容。除了添加那个变形器之外,我还需要做其他事情吗?一开始我以为是 SQLServer 的问题,但这不会影响新视图中的路由,是吗?

【问题讨论】:

  • 您的确切 Rails 版本是什么? 4点什么点什么?
  • 现在是 4.2;由于我不在电脑前,我无法检查补丁版本以确定是否知道,但我想说它是 12。这是其中一个版本中的已知问题吗?
  • 4.2.1.显然我添加了一个额外的 2...这是在最近的补丁中修复的吗?
  • 我认为这可能与 Rails github page 上报告的另一个问题有关,但该问题似乎已在 4.2 版本中得到修复。我在想 Rails 被大写弄糊涂了,但发布是错误的。很抱歉没有早点回复这个问题,但我的 Macbook 正在维修,通过手机使用 SO 很痛苦。
  • 啊,无论如何,谢谢。我也许可以将其用作起点或无论如何。

标签: ruby-on-rails sql-server ruby-on-rails-4 inflector


【解决方案1】:

问题原来是我忘记重新启动我的网络服务器。显然,对变形器的更改不会被 Web 服务器接收到,但是当然只是从命令行运行 rails generate 它确实看到了更改,所以......愚蠢的错误,但如果其他人发生在它上面,希望这个会帮助他们的。

【讨论】:

    猜你喜欢
    • 2014-05-23
    • 2021-06-01
    • 1970-01-01
    • 2016-07-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-29
    相关资源
    最近更新 更多