2010-07-31 31 views
10

Tôi đang sử dụng lệnh này:Thay đổi dạng số nhiều của mô hình được tạo ra trong đường ray?

rails generate model DayOfMonth day:integer 

Rails tạo ra mô hình "DayOfMonth" và bảng "day_of_months".

Thay vào đó, tôi muốn tạo bảng "days_of_month".

Tôi biết điều này có liên quan đến lớp Inflector và inflector.rb trong thư mục initializers.

Nhưng tôi không hiểu cách làm việc này.

Tôi đang sử dụng Rails 3.

Ai đó có thể giúp tôi ở đây hoặc chỉ cho tôi hướng dẫn về điều này?

Cảm ơn

Trả lời

6

Bạn chỉ có thể chỉnh sửa các di dân và sau đó thêm

Rails 3.2+/4+

class DayOfMonth < ActiveRecord::Base 
    self.table_name = "days_of_month" 
end 

Rails 3

class DayOfMonth < ActiveRecord::Base 
    set_table_name "days_of_month" 
end 
+4

Cú pháp này giờ đây đã thay đổi thành 'self.table_name = "days_of_month"' – 8bithero

14
ActiveSupport::Inflector.inflections do |inflect| 
inflect.irregular 'day of month', 'days of month' 
end 

đọc: http://api.rubyonrails.org/classes/ActiveSupport/Inflector.html

+1

nó vẫn không hoạt động. Tôi đã thêm dòng đó, sau đó tôi chạy "đường ray tạo mô hình DayOfMonth day: integer" nhưng nó vẫn tạo ra một di chuyển có tên là CreateDayOfMonths. –

4

Bạn có thể nói hình thức số nhiều của 'ngày của tháng' trong một initializer 'inflections.rb' là những gì:

ActiveSupport::Inflector.inflections do |inflect| 
    inflect.irregular 'day of month', 'days of month' 
    inflect.irregular 'day_of_month', 'days_of_month' 
end 

Đó làm việc cho tôi. Mặc dù, tôi vẫn gặp lỗi khi xác định liên kết với mô hình đó:

has_many :days_of_month 
+0

Điều này làm việc cho tôi. Có vẻ như có một lỗi trong đường ray có thể gây ra vấn đề của bạn, nhưng nó đã được sửa ngay bây giờ. https://github.com/arthurnn/rails/commit/c0b6e164ee6bbc7941d280ea629d70d400561668 –

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