草庐IT

动态路由协议 RIP

全部标签

ruby-on-rails - 在 Rails 路由中使用 "to:"和 fat-arrow "=>"有什么区别?

在RailsGuidesroutingtutorial,他们举了下面的例子如何使用to散列参数设置简单路由:get'/patients/:id',to:'patients#show'但是当你生成一个新的Rails应用程序(使用Rails4.0.3)时railsnew命令,生成的config/routes.rb文件给出以下内容使用散列键/值分隔符=>的简单路由示例get'products/:id'=>'catalog#view'定义路线的这些不同方法之间是否存在差异,或者它们是同一种东西吗?TheRailsdocumentation字面上是这样说的:match'path'=>'contr

ruby-on-rails - Rails 更改 form_for 中提交的路由

我有一个模型“文章”和一个嵌套在文章中的模型“评级”。/articles/123/ratings我想更改ratings/_form.html.erb中f.submit的路由现在是这样,在按下提交后,我的应用程序路由到/评分/111但我想把它路由到/文章/123如何更改form_forf.submit按钮中的路由。我在这里找到了这样的东西:url_for(:action=>"update",:id=>@thing)do|f|%>但这不适用于我的Rails3.2。感谢您的帮助, 最佳答案 :url-提交表单的URL。它采用您传递给url

ruby-on-rails - 具有不同 HTTP 请求类型的两个路由如何共享相同的名称?

在Rails3.2中,我使用这些路由声明:get'contact'=>'contact#new',:as=>'contact'post'contact'=>'contact#create',:as=>'contact'它们导致(rakeroutes):contact_enGET/en/contact(.:format)contact#new{:locale=>"en"}contact_deGET/de/kontakt(.:format)contact#new{:locale=>"de"}contact_enPOST/en/contact(.:format)contact#create{

ruby - 动态需要文件?

有没有人足够了解Ruby的require来告诉我以下语法是否有效:classSomethingdefinitialize(mode)casemodewhen:onethenrequire'some_gem'when:twothenrequire'other_gem'endendends=Something.new如果是这样,需要将gem放入全局命名空间,就像在文件顶部时一样? 最佳答案 Ifso,wouldtherequireplacethegemintotheglobalnamespaceasthesamerequireatthe

ruby-on-rails - Rails 中的动态常量定义

我使用以下语法在Rails的初始化程序中定义常量:MyModule.const_set('MYCONSTANT','foobar')如果我启动控制台并写入,它就可以工作MyModule::MYCONSTANT我按预期收到了foobar。问题是,当我尝试在模型中调用它时,常量不存在。D应该在哪里动态定义我的常量,以便它在我的模型中也可用?如果我在我的lib/mymodule.rb中静态定义它,它可以工作,但我想在运行时定义一些常量。 最佳答案 如果你想保留config.cache_classes=false,你可以把MyModule.

ruby-on-rails - 如何在rails中命名路由

我有一些看起来像这样的路线:match'hotels/:action(/:id)',:controller=>'hotel',:action=>/[a-z]+/i,:id=>/[0-9]+/i我想在我的代码中某处使用类似hotels_dislike_path的东西,它指的是/hotels/dislike我该怎么做? 最佳答案 来自routingguide:3.6NamingRoutesYoucanspecifyanameforanyrouteusingthe:asoption.match'exit'=>'sessions#destr

ruby - 如何创建匹配所有请求并指向一个资源/页面的 Rails 3 路由?

我有一个需要暂时停止服务的Rails应用程序(Rails3.0)。虽然这是有效的,但我想创建一个新路由,将所有请求定向到单个静态内容。我设置了一个Controller来为我的静态页面提供服务。我试过这样的:match'*'=>'content#holding'和match'*/*'=>'content#holding'匹配通配符路由,如下所述:Rails3routeglobbing没有成功。这可能是一个非常简单的答案,但我想不通。/编辑/忘了说我在routes.rb文件的最顶部确实有这条规则。 最佳答案 Rails需要将url参数绑

ruby - 具有动态条件的 rspec `its` 语法

我真的很喜欢将contexts、subjects和its与rspec一起使用来真正清理我的测试代码。典型例子:context"asauser"dosubject{Factory:user}its(:name){should=="Bob"}end但我想不通的是如何使这种情况动态化(即基于其他对象)。its似乎对block内的属性进行实例评估,因此我无法访问它周围的所有内容。我很想做这样的事情:its(:name){should==subject.contact.name}但我看不出有什么方法可以实现这一点。有谁知道是否有一些方法代理到这个实例eval来访问原始对象?或者如果有任何其他方法

ruby-on-rails - 如何在我的 Rails 应用程序中获取所有路由?

我可以在我的Rails应用程序中获取所有路由吗?我需要像rakeroutes这样的输出,并将结果放入一个数组中。这可能吗?怎么办? 最佳答案 您可以看看Rails从rake任务中吐出这些路线的方式。它位于Rails2的/gems/rails/2.3.x/lib/tasks/routes.rake中。似乎基本上是在做ActionController::Routing::Routes.routes在一般情况下,然后询问。 关于ruby-on-rails-如何在我的Rails应用程序中获取所有

Ruby:动态生成attribute_accessor

我正在尝试从散列(使用嵌套散列)生成attr_reader,以便它自动镜像instance_variable创建。这是我目前所拥有的:data={:@datetime=>'2011-11-23',:@duration=>'90',:@class=>{:@price=>'£7',:@level=>'all'}}classEvent#attr_reader:datetime,:duration,:class,:price,:leveldefinit(data,recursion)data.eachdo|name,value|ifvalue.is_a?Hashinit(value,recur