Sim*_*mon 12 activerecord ruby-on-rails scaffold
我是Ruby on Rails的新手,我正在尝试创建一个低音吉他导师,以便自学RoR(和低音吉他).本演练使用Scaffold创建ActiveRecord类,但它们似乎对应于独立表; 没有使用belongs_to或has_many.
我想创建三个类:Scale,GuitarString和Fret.每个Scale都有许多GuitarStrings,每个都有许多Frets.
如何使用Scaffold创建具有此关系的类?有没有办法一次性完成,或者我是否需要使用Scaffold在不相关的状态下创建它们,然后手动添加关系?或者我应该完全抛弃脚手架?
Zac*_*ght 17
几个星期前我开始学习Ruby on Rails,我发现通过不使用脚手架,从命令行生成各种部分(或者在IDE).
但是,从我所知,当你使用脚手架来生成东西时,你会认为它是生成一个"资源",因此你只需要一次创建一个资源,然后手工添加关系.
但是,generate model命令可以为您创建这些关系.假设您使用scaffolding来创建Scale资源.
那你可以做
ruby script/generate model GuitarString name:string scale:references
Run Code Online (Sandbox Code Playgroud)
比例:引用将belongs_to :scale在您的GuitarString模型上创建一个,但您需要将has_many:guitarstrings添加到您的比例模型中.
generate model命令还为您和其他所需文件(fixture)创建了一个迁移脚本,类似于scaffolding,但不会自动创建视图或控制器或任何其他内容.
编辑:
这通常是您想要做的事情 - 使用generate/model或generate/view或generate/controller或generate/migration.大多数Rails开发人员不使用脚手架,因为它的"一刀切"很少能很好地适应所有事情.但是,大多数rails开发人员都使用我提到的generate命令 - 它可以节省创建帮助程序和fixture的时间,并为每个文件生成一个可以添加的基本模板.
像JetBrain的RubyMine这样的几个Ruby IDE都有基本上执行这些命令的宏.在RubyMine中,您可以执行ctrl + alt + g,然后输入与您要生成的内容相对应的另一个键.
如上所述,belongs_to关系可以使用"references"字生成.您将手动添加的其他人.
| 归档时间: |
|
| 查看次数: |
12013 次 |
| 最近记录: |