我有以下2種型號軌3.1拐點問題
class Listing < ActiveRecord::Base
has_many :listing_saves
end
class Team < ActiveRecord::Base
has_many :listing_saves
has_many :saved_listings, through: :listing_saves, source: 'listing'
end
的加入模型的Rails 3.1的應用程序看起來像這樣
class ListingSave < ActiveRecord::Base
belongs_to :team
belongs_to :listing
end
慕我認爲有一個拐點的問題,因爲每當我嘗試運行我的測試我得到以下錯誤(這是錯誤的示例和導致它的測試)
it "should return the listing saves associated with the team" do
save = Factory :listing_save, listing: @listing, saver: @user, team: @team
@team.listing_saves.should include save
end
Failures:
1) Team listing_saves associations should return the listing saves associated with the team
Failure/Error: @team.listing_saves.should include save
NameError:
uninitialized constant Team::ListingSafe
# ./spec/models/team_spec.rb:55:in `block (3 levels) in <top (required)>'
彷彿Rails正在單個化listing_saves
到listing_safe
以下是我已經嘗試了一些定製變形器(不是全部在同一時間)(他們沒有工作)
# config/initializers/inflections.rb
ActiveSupport::Inflector.inflections do |inflect|
inflect.plural 'saved_listing', 'saved_listings'
inflect.singular 'saved_listings', 'saved_listing'
inflect.plural 'listing_save', 'listing_saves'
inflect.singular 'listing_saves', 'listing_save'
inflect.singular 'listing_safes', 'listing_safe'
inflect.plural 'listing_safe', 'listing_safes'
inflect.irregular 'listing_save', 'listing_saves'
inflect.irregular 'saved_listing', 'saved_listings'
end
我能做些什麼未來?
注:我發現this similar question但答案似乎並沒有解決我的問題
編輯 我也跟着下面的答案,讓我現在已經在我的config/initializers/inflections.rb
ActiveSupport::Inflector.inflections do |inflect|
inflect.irregular 'listing_save', 'listing_saves'
end
以下
當我打開控制檯會話並運行"listing saves".singularize
時,我收到了「listing_save」,正如我所希望的那樣。但是,似乎至少有一部分應用程序沒有得到它,我的測試仍然像以前一樣失敗。 (我發誓我在測試/運行應用程序之前重新啓動我的服務器和spork)!
編輯2 我寫了一些測試,在我的應用程序語調:
describe "inflection" do
it "should singularize listing_saves properly" do
"listing_saves".singularize.should == "listing_save"
end
it "should pluralize listing_save properly" do
"listing_save".pluralize.should == "listing_saves"
end
end
現在我有一個情況,這些測試都通過了罰款,但其他的測試仍然失敗,我以前有同樣的錯誤
NameError:
uninitialized constant User::ListingSafe
相同的應用程序,相同的spork實例,加載相同的文件。這裏有一些奇怪的事情發生!
見下面我的新評論。 – Casper
也許是個愚蠢的問題,但是......如果它給你帶來這麼多麻煩 - 爲什麼不找個別的名字呢? ;) –
哈哈當然是啊,我們都知道我不能讓它擊敗我! –