2010-04-04 43 views
12

Tôi mới làm quen với Ruby on Rails, và tôi đang cố gắng tạo ra một gia sư guitar bass để dạy cho bản thân mình RoR (và guitar bass). Các walkthroughs sử dụng Scaffold để tạo các lớp ActiveRecord, nhưng chúng dường như tương ứng với các bảng độc lập; không sử dụng belongs_to hoặc has_many.Làm cách nào để tạo nhiều mối quan hệ bằng cách sử dụng Giàn giáo?

Tôi muốn tạo ba lớp: Scale, GuitarString và Fret. Mỗi Scale có nhiều GuitarStrings, mỗi cái đều có nhiều Frets.

Làm cách nào để tạo các lớp học với mối quan hệ này bằng cách sử dụng Giàn giáo? Có cách nào để làm điều đó trong một lần, hay tôi cần phải tạo chúng trong một trạng thái không liên quan bằng cách sử dụng giàn giáo, sau đó thêm các quan hệ bằng tay? Hay tôi nên đào Scaffold hoàn toàn?

+0

bản sao có thể có của http://stackoverflow.com/questions/502119/rails-scaffold-to-automatically-do-one-to-many-relationship – hobodave

+0

@hobodave: silimar, vâng. Anh ấy hỏi "nó có thể được thực hiện" và tôi hỏi "đây có phải là cách để làm điều đó, nếu không, làm thế nào?" – Simon

+0

Bạn có thể muốn kiểm tra chỉnh sửa trong câu trả lời của tôi. –

Trả lời

16

Tôi bắt đầu học Ruby on Rails cách đây vài tuần, và tôi thấy dễ dàng hơn khi có được thứ gì đó và học theo cách của mình bằng cách không sử dụng giàn giáo, và tạo các phần khác nhau từ dòng lệnh (hoặc macro trong một IDE). Tuy nhiên, từ những gì tôi có thể nói, khi bạn sử dụng giàn giáo để tạo ra mọi thứ, bạn nghĩ nó tạo ra một "tài nguyên", vì vậy bạn sẽ chỉ tạo một tài nguyên tại một thời điểm, sau đó thêm vào các mối quan hệ bằng tay sau.

Tuy nhiên, lệnh tạo mô hình có thể tạo các mối quan hệ này cho bạn. Giả sử bạn đã sử dụng giàn giáo để tạo tài nguyên Tỷ lệ.

Sau đó, bạn có thể làm

ruby script/generate model GuitarString name:string scale:references 

Quy mô: tài liệu tham khảo sẽ tạo ra một belongs_to :scale trên mô hình GuitarString của bạn, nhưng bạn sẽ cần phải thêm has_many: guitarstrings để mô hình quy mô của bạn.

Lệnh tạo mô hình cũng tạo tập lệnh di chuyển cho bạn và các tệp khác cần thiết (đồ đạc), tương tự như giàn giáo, nhưng không tự động tạo chế độ xem hoặc bộ điều khiển hoặc bất kỳ thứ gì.

EDIT:

này thường là cách bạn sẽ muốn làm những việc - sử dụng tạo/mô hình hoặc tạo/xem hoặc tạo/điều khiển hoặc tạo/chuyển đổi. Hầu hết các nhà phát triển Rails không sử dụng giàn giáo, vì "một kích thước phù hợp với tất cả" hiếm khi phù hợp với mọi thứ một cách hoàn hảo. Tuy nhiên, hầu hết các nhà phát triển đường ray đều sử dụng các lệnh tạo mà tôi đã đề cập - nó tiết kiệm thời gian với việc tạo các trình trợ giúp và đồ đạc bằng tay, và nó cung cấp cho mỗi tệp nó tạo ra một mẫu cơ bản mà bạn có thể thêm vào.

Một số Ruby IDE giống như RubyMine của JetBrain có các macro thực chất thực hiện các lệnh này. Trong RubyMine bạn có thể thực hiện ctrl + alt + g, sau đó nhập một khóa khác tương ứng với những gì bạn muốn tạo.

Mối quan hệ thuộc tính có thể được tạo bằng cách sử dụng từ "tham chiếu", như tôi đã đề cập. Những người khác bạn sẽ thêm vào bằng tay.

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