ruby-on-rails – 保留未使用的REST操作是不是很糟糕?
我真的很困惑如何做到这一点.
我也很累,也很沮丧,看着这么多不同的东西,我的大脑也在受伤. >保留未使用的REST操作是不好的做法?我有一个资源模型,例如,用户可以提交它们,但我不需要’index’动作来显示它们,因为它是由Home#index控制器处理的.我想要做的就是使用link_to转到带有表单的页面来添加新资源.所以现在所有的link_to都试图在我执行resources_path时继续尝试转到/ resources.我读了你如何使用’遗留’方法,只是直接链接到控制器中的动作,但这不是“轨道方式”.现在我试图找出什么是rails方式如果我没有使用默认情况下所做的所有不同的REST操作. 模板丢失了 Missing template resources/create,application/create with {:locale=>[:en],:formats=>[:html],:handlers=>[:erb,:builder,:coffee]}. Searched in: * "/Users/Zesty/Code/gem-portal/app/views" * "/usr/local/lib/ruby/gems/1.9.1/gems/devise-2.0.4/app/views" 如果我有资源:我的路线中的资源我不知道为什么它不会自动转到资源#create: def create @resource = Resource.new(params[:resource]) end 谢谢! 顺便说一句,这是我的路线中的最新情况,万一有任何明显的错误 root :to => 'home#index' resources :resources # match '/resource/submit',:to => 'resources#new' match '/learn',:to => 'pages#learn' match '/contact',:to => 'pages#contact' match '/requests',:to => 'pages#requests' 解决方法
1.保留未使用的REST操作是不好的做法?
只要我能回答这个问题,这并不是一种糟糕的做法.如果您不需要控制器的索引操作,则没有它,句点.但是您应该在路线中排除此操作,例如做资源:资源,:除了=> [:指数].当您从错误中解救时,这可能会变得很方便,因为NoTemplateError与RoutingError不同(这意味着您可能会错过在生产中挽救某些东西). 此外,它是一个很好的开发小帮手.当您意外地写入未使用的控制器索引的链接时,如果您排除了路径中的操作,则会在包含该链接的页面上出现错误.如果你不这样做,你只会在点击链接后看到错误,因为路线有效(但没有功能/模板/无论如何). 2.上述情况听起来像我这样做吗?我希望它在home #index中列出所有资源而不是资源#index? 如果是化妆品问题(例如,资源#index基本上是需要的,但在另一个网址下),你可以创建路由匹配“home”,:to => “资源#指数”.这将弃用您的自定义主控制器,您可以对/ home下和/ resources下可用的资源使用索引操作.但同样,这可能不是您的工作流程/逻辑的最佳选择,所以这只是一个建议. 3.如果这是不好的做法,那么我该如何手动创建它们呢? 4.如果我想更改默认的网址怎么办? 你可以改变那些,但你不应该. 鉴于我留下的所有网址都是一样的.如果我转到/ resources / new并点击表单上的“提交” 例: def create @resource = Resource.new(params[:resource]) if @resource.save # record valid and saved,so redirecting to /resources/:id redirect_to @resource else # record not valid. rendering the new.html.erb template # (HINT the new action is NOT called here). render :action => :new end end 请记住.new会创建一个新对象,但除非您在其上调用例如.save,否则它不会存储到数据库中. 这些只是我对此的看法和经验,所以如果有更多有经验的人认为有问题,我很高兴看到评论并更新我的答案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |