属に複数形にする必要がある属モデルが必要です。Ruby 2.2.1 および SQLServer 2014 で Rails 4.2.1 を使用しています。config/initializers/inflections.rb に Inflector を追加しました。
ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.irregular 'genus', 'genera'
end
この質問ごとに。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 のせいだと思っていましたが、新しいビューでのルーティングには影響しませんね。