Ash*_*Ash 3 ruby resources routes ruby-on-rails models
我第一次在我的工作项目中使用Ruby,所以我仍然在学习绳索(并且热爱它的每一分钟).
虽然我理解map.connectroute.rb文件中的函数的意义,但我不理解Rails的"资源"和"命名路由"功能.我在这里有我的Rails书并多次阅读,但我仍然没有得到它.我得到的命名路线 - 我认为它们要么是规则,要么是明确定义的,要么是由代码块计算的,但资源对我来说是完全神秘的; 我唯一能够满足他们的是,如果你想要一些很酷的东西,你只需要它们,比如能够调用'resource_path'(及其相关的一系列相关方法).
我目前的项目有:
map.resources :application_forms
map.resources :sections
map.resources :questions
map.resources :seed_answers
map.resources :question_types
map.resources :form_questions
map.resources :rules
map.resources :form_rules
Run Code Online (Sandbox Code Playgroud)
..但是我的Rails书中有这种令人敬畏的"has_many"和"only"类型的哈希和参数悬挂在它们之间,我无法确切地知道何时应该使用它们,也没有什么好处.
谁能让我直截了当?
命名路线就是这样; 附加了名称的路由,以便在您想要生成URL时轻松引用它.除此之外,它可以消除歧义.
资源基本上是您希望操作路由的"事物".当你定义'sections'是一个资源时,你正在做的是说"我想要一条路线来获取所有部分.我想要一条路线来添加一个新的部分.我想要一条路线来编辑一个现有的部分.我想要一条删除路段的路线." 诸如此类的事情.这些路线指向像标准化的方法名index,new,edit,等等.这些路线中的每一条都将根据其名称分配名称; 所以现在有一条名为的路线'edit_section'.
该:has_many参数可以让你说某种东西有子东西.例如,你可以说map.resources :sections, :has_many => [:questions].这意味着问题属于某个部分,这将反映在网址和路径中.你会得到像你这样的网址'/sections/27/questions/12'和命名路线'section_questions'.
该:only参数表示"只能使路线这些行动"; 如果您只想允许列出,查看和添加项目,而不是编辑或删除,则可以使用它.
| 归档时间: |
|
| 查看次数: |
334 次 |
| 最近记录: |