2014-05-12 26 views
6

Ứng dụng Rails 4.1. Tôi có thể làm việc xung quanh nó, nhưng quan tâm đến lý do tại sao nó không làm việc:Mối quan hệ cố định đường ray không tồn tại

class NotificationSettings < ActiveRecord::Base 
    belongs_to :user 
end 

class User < ActiveRecord::Base 
    has_one :notification_settings 
end 

này không làm việc:

# test/fixtures/notification_settings.yml 

wilmas_notification_settings: 
    user: wilma 
    checkin_comments: false 
    checkin_comments_schedule: instant 

này không làm việc:

# test/fixtures/notification_settings.yml 

wilmas_notification_settings: 
    user_id: wilma 
    checkin_comments: false 
    checkin_comments_schedule: instant 

Tất cả các thứ mà nó trỏ nó là một vấn đề với belongs_to, nhưng tôi bị bối rối.

Lỗi là:

ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR: column "user" of relation "notification_settings" does not exist 
LINE 1: INSERT INTO "notification_settings" ("user", "checkin_commen... 
              ^
: INSERT INTO "notification_settings" ("user", "checkin_comments", "checkin_comments_schedule") VALUES (550831404, 'f', 'instant') 

Trả lời

4

Hóa ra pluralization của notification_settings đã ném nó đi. Điều này đã sửa lỗi:

ActiveSupport::Inflector.inflections(:en) do |inflect| 
    inflect.uncountable %w(notification_settings) 
end 
+0

Bạn có thể mở rộng câu trả lời này liên quan đến đây có phải là lỗi trong Rails 4 không? Nếu có, tôi vẫn cần phải thực hiện các thay đổi ngay cả khi tôi hiện không sử dụng các quy tắc uốn? Trong mã mặc định nó nói "Những quy tắc uốn được hỗ trợ nhưng không được kích hoạt mặc định" Cảm ơn. – Marklar

+0

Tôi không nghĩ đó là lỗi. Tôi nghĩ rằng nó chỉ liên quan đến thực tế là số nhiều trong trường hợp này là cùng một từ như số ít, do has_one. – brandonhilkert

Các vấn đề liên quan