开发者

What is the scope of the code in db/seeds.rb in Ruby on Rails?

开发者 https://www.devze.com 2023-01-29 09:19 出处:网络
Question 1 Suppose I write define some variables in db/seeds.rb, e.g.: user = User.create(...). What is the scope of these variables ?

Question 1

Suppose I write define some variables in db/seeds.rb, e.g.: user = User.create(...).

What is the scope of these variables ?

Question 2

If I have a big amount of code in 开发者_运维问答db/seeds.rb, is it recommended to put it in a class ?


The variables are in the scope of the rake instance that has been started. So they would be in scope for other tasks if multiple tasks where started at once.

For example

rake db:seed custom:sometask

Instance variables defined in db:seed could be accessed in 'sometask'

If the rake file is too big because of adding too many records, you could move the data that is to be inserted into a yaml file, that could make your seeds file cleaner, rather than creating a class.


Seed data is anything that must be loaded for an application to work properly. An application needs its seed data loaded in order to run in development, test, and production.

Seed data is mostly unchanging. It typically won’t be edited in your application. But requirements can and do change, so seed data may need to be reloaded on deployed applications.

Answer for your second question

lines of code in seed.rb doesn't affect the performance the basic task of seed is to initialize the database with predefined records. Keep one thing in mind that the parent creation is done before the child is created.

Here are some references that might help you

ASCIICasts

Rail Spikes

0

精彩评论

暂无评论...
验证码 换一张
取 消