Tag: rails routing

在命名空间下为命名路由助手添加前缀

这就是常见命名空间的样子。 namespace :admin do resources :posts end 它创建了一个像这样的命名路线; new_admin_post_path 这是我的问题; 如何在命名空间下的命名路由中添加前缀(如本例中的“new”)? 让我们说我的路线定义喜欢这个; namespace :admin do get ‘post/new’ => ‘posts#new’, as: ‘post’ end 它创造了一条命名路线,如; admin_post_path 我想为这个命名路由添加“new”前缀,使其看起来像new_admin_post_path ,我不想使用resources 。

列出可安装的Rails 3.1引擎的“rake路由”

我正在使用可安装的引擎与Rails 3.1一起使用,我想列出引擎的路由。 我用以下方法创建了引擎: $ rails plugin new rails_blog_engine –mountable 并编辑了’test / dummy / config / routes’文件,内容如下: Rails.application.routes.draw do mount RailsBlogEngine::Engine => “/blog” end …和’config / routes’读取: RailsBlogEngine::Engine.routes.draw do resources :posts end 我想列出为’:posts’生成的路线,但目前尚不清楚我是如何做到这一点的。 当我运行’rake app:routes’时,我只得到“/ blog”路线: $ rake app:routes rails_blog_engine /blog {:to=>RailsBlogEngine::Engine} 当我运行’rake routes’时,我收到一个错误: $ rake routes rake aborted! Don’t know how to build task ‘routes’ […]

RSpec找不到我的命名路线

我有一个莫名其妙的困难时间让我的命名路线在我的rspec测试中工作。 这就是我所看到的: 1) Home GET / works! Failure/Error: get root_path NameError: undefined local variable or method `root_path’ for # # ./spec/requests/home_spec.rb:6:in `block (3 levels) in ‘ 2) Home GET / shows products! Failure/Error: get products_path NameError: undefined local variable or method `products_path’ for # # ./spec/requests/home_spec.rb:10:in `block (3 levels) in ‘ 规格/请求/ home_spec.rb require ‘spec_helper’ […]

如何使用Rails路由从一个域重定向到另一个域?

我的应用程序曾经在foo.tld上运行,但现在它在bar.tld上运行。 对于foo.tld,仍然会有请求,我想将它们重定向到bar.tld。 我怎样才能在rails路线中这样做?

如何为Rails应用程序创建应用程序范围的slug路由?

我正在研究的Rails应用程序中有许多不同的模型。 我已经看到许多网站使用应用程序范围的slug路由方法。 这是什么意思? http://example.com/nick-oneill <– This points to a User object http://example.com/facebook <– This points to a Company object http://example.com/developers <– This points to the users#index page 我知道to_param并在应用程序中创建读者友好的slug,但是我不知道有一种方法可以为各种对象提供根级别的slu .. 您可以认为这类似于Facebook的Graph API:有不同的对象类型,但它们都存在于https://graph.facebook.com/object-id 任何见解都将非常感谢!

Rails 3 link_to(:method =>:delete)不起作用

我在Rails中的动词遇到了麻烦 …… 查看资源(狗)的页面has_many(跳蚤)。 嵌入dog的show.html.haml是对render @dog.fleas的调用,它自动(?)找到并使用“fleas / _flea.html.haml”中的模板来列出与所述狗相关的每个跳蚤。 这显示正确。 噢! 现在,在每个跳蚤的旁边,我放了一个“Kill Flea”链接到url: //localhost:3000/dogs/1/fleas/7 。 由哪个生成: = link_to(“Kill Flea”, [ flea.dog, flea ], :method => :delete, :confirm => “Sure? A bunny will die”) 但每次点击该链接都没有确认…并且它会呈现跳蚤的show.html页面。 好像它在/dogs/1/fleas/7上使用GET而不是DELETE ?!? ps-不担心蜘蛛和机器人在我的数据库中删除东西……我只是想学习Rails ……并了解发生了什么

Rails Wicked Gem – 了解路由

好的,所以我真的不了解邪恶的gem中的嵌套路由。 到目前为止,我有这个。 我不确定是否所有内容都在正确的文件夹中,或者我是否正确。 的routes.rb resources :events resources :events do resources :build, controller: ‘events/build’ end 控制器/ events_controller.rb def create @event = Event.new(event_params) if @event.save flash[:success] = “Event Created!” redirect_to event_build_path(event_id: “event”, id: @event.id) # previously had redirect_to event_build_path without parameters) else render ‘new’ end end 控制器/活动/ build_controller.rb class Events::BuildController < ApplicationController include Wicked::Wizard steps :details, :visibility […]

Rails路由基于条件

我有三个角色:Instuctor,Student,Admin,每个角色都有一个带有“home”视图的控制器。 所以这很好, get “instructor/home”, :to => “instructor#home” get “student/home”, :to => “student#home” get “admin/home”, :to => “admin#home” 我想写一个类似于下面的虚荣url,它会根据user_id的角色路由到正确的主页。 get “/:user_id/home”, :to => “instructor#home” or “student#home” or “admin#home” 我该如何做到这一点?

提交表格(没有型号)并且无法让控制器发挥其作用

我已经为webapps创建了一个基本框架(一些静态页面,用户身份validation,使用rspec进行单元/集成测试)。 我想将此作为未来webapps的基础,但我需要设置一种方法,在从github克隆它之后重命名它。 我在这里获得了一些生成重命名代码的帮助] 1 ,但我正在努力弄清楚如何集成它。 我最初写的是在rakefile中重命名代码,但现在我想也许它应该在控制器中。 不幸的是,我无法使我的代码工作。 我有一个允许用户输入应用程序新名称的视图。 想法是用户将克隆框架repo,cd到框架目录,启动rails服务器,然后转到他们浏览器上的本地主机以从那里重命名文件。 但是,假设启用它的观点不起作用。 views/namer/new/html.erb Rails Framework ‘create’ %> 我无法让“提交”操作正常工作。 这是我的控制器的样子。 controllers/namer_controller.rb class NamerController < ApplicationController def index render('new') end def new end def create @appname = Namer.new(params[:appname]) #first, change any instances of the term "framework" to the new name of the app file_names = ['config/environments/test.rb', 'config/environments/production.rb', 'config/environment.rb'] file_names.each […]

Ruby on Rails – 将params传递给routes.rb中的301重定向

我想改变我在routes.rb中的现有“游戏”路由,但由于SEO我还需要为旧链接设置301重定向。 我的旧路由: match ‘games/:permalink/:id/(:page)’ => ‘games#show’ 新路由: match ‘gierki/:permalink/(:page)’ => ‘games#show’ 这是我试图做的重定向: match ‘games/:permalink/:id/(:page)’ => redirect {|params| “/gierki/#{params[:permalink]}” + params[:page].nil? ? “” : “/#{params[:page]}” } 上面的重定向不起作用,这是一个错误: wrong number of arguments (1 for 2)