Tag: 路由

应该将哪些对象传递给具有三重嵌套路由的link_to?

我应该将哪些对象传递给我的link_to以获得三重嵌套路由? 我想要检索练习秀页面。 show.html.erb – 锻炼 的routes.rb resources :plans do resources :workouts do resources :exercises end end workouts_controller.html.erb def show @workout = Workout.find(params[:id]) end 我尝试了以下方法,但它没有将正确的ID提供给正确的型号。

添加自定义:使用Rails 3路由的新路由

在Rails 2中,我们可以为资源丰富的路由添加自定义new操作,例如: map.resources :users, :new => {:apply => :get} 我们如何在Rails 3中实现同样的function? resources :users do get :apply, :on => :new # does not work new do get :apply # also does not work end end 有任何想法吗?

Rails routes.rb语法

我搜索过并搜索过,我找不到一个页面,其中列出了Rails 3中routes.rb的语法。有指南,概述,甚至是高级示例,但为什么没有一个页面说明每个关键字的确切语法?? 这一页 http://www.engineyard.com/blog/2010/the-lowdown-on-routes-in-rails-3/ 包含许多高级示例,但没有花时间讨论给出的所有示例的行为。 如果有人能指出我打破routes.rb语法的页面,我将不胜感激。 这是我试图解决的问题。 我有两个型号modelA和modelB。 关系是modelA has_many modelB和modelB belongs_to modelA。 我在modelA的命名空间下为modelB创建了控制器。 所以在我的rails app文件夹中,我有 app/controllers/modelA_controller.rb app/controllers/modelA/modelB_controller.rb 我希望我的路线是这样的: http://localhost:3000/modelA/:modelA_id/modelB/ [index] http://localhost:3000/modelA/:modelA_id/modelB/:modelB_id [show] etc. 我在routes.rb中尝试了以下操作,但没有一个工作: resources :modelA do resources :modelB end — resources :modelA do member do resources :modelB end end — namespace :modelA do resources :modelB end — match ‘/modelA/:modelA_id/modelB/action’, :to => ‘/modelA/modelB#action’ 我知道我尝试的一些事情显然是错的,但是当你花了两天时间解决一个问题时,任何事情都会发生!

有没有办法在路由参数中放置多个参数?

我有一个路线get ‘/catalog/:gender/’ => ‘catalog#gender’ 。 :gender参数在我的控制器中使用,如@products = Product.where(gender: params[:gender]).all 。 所以我可以使用/catalog/male/来获取所有男性产品和/catalog/female/获得所有女性产品。 问题是,是否有人可以通过male和female参数并获得所有产品?

路由约束不会正确地为Rails参数赋值; 使用’+’分隔值

我希望能够在我的应用程序路由中支持国家/地区代码和区域代码。 例如: /实体/美 /实体/我们+ CA /实体/ US /分钟 /实体/ US / MN +无线+ IA /实体/我们+ CA / BC + WA 我目前的路线: get “/entities/:country_code/(:region_code)” => “entities#index”, :constraints => {:country_code=>/[a-zA-Z]{2}[\+\,]?/, :region_code=>/[a-zA-Z]{2}[\+\,]?/} resources :entities 尝试/entities/us+ca导致此exception: # Use callbacks to share common setup or constraints between actions. def set_entity @entity = Entity.find(params[:id]) end Application Trace | Framework Trace | […]

rails rspec没有路由匹配

我正在尝试测试我的路由(它们可以正常处理实际请求)并收到此错误: ActionController::UrlGenerationError: No route matches {:action=>”api/login”, :controller=>”login”, :email=>”a@a.com”, :password=>”super_secure”} 我看了很多类似的问题,但找不到我问题的准确答案。 我的路线是: Rails.application.routes.draw do post ‘api/login’ => ‘login#email_login’ 我的考试是 describe LoginController do it ‘works fine’ do password = ‘super_secure’ salt = BCrypt::Engine.generate_salt.to_s hash_password = BCrypt::Engine.hash_secret(password, salt).to_s user_login = FactoryGirl.create(:user_login, user_hash: hash_password, salt: salt, email: ‘a@a.com’) post ‘api/login’, password: password, email: user_login.email expect(response).to be_success end end 最后我的LoginController是: […]

如何在Rails 3.1中将我的URL格式设置为username / controller /:id?

我希望它类似于Twitter处理其推文的URL的方式。 例如,现在我的URL看起来像这样: mydomain.com/feedbacks/1/ ,其中feedbacks是控制器的名称。 我希望它看起来像: mydomain.com/username/feedbacks/1/ ,类似于Twitter的: twitter.com/username/status/:id/ : twitter.com/username/status/:id/ 。 我的routes.rb看起来像这样: resources :users do resources :feedbacks end 当我这样的时候,它给我的url为mydomain.com/users/1/feedbacks ,但我想要URL中的实际用户名。 我怎么做到的? 谢谢。 编辑1:如果您要为此问题添加另一个答案,请确保它针对已给出的答案解决我的意见/问题。 否则它将是多余的。

是否可以动态删除一定级别的rails资源嵌套?

我需要路由才能为rails app的托管和whitelabel版本工作。 这两个版本都运行在相同的代码库和同一服务器上,因此路由需要解决问题,但我不清楚如何实现这一点。 我正在建立一个工作委员会。 每个注册的公司都可以在网站上创建自己的公司资料。 如果他们获得付费高级版本,他们可以使用自己的CNAMEurl,并在其子域之一上提供工作板。 所有非常标准的东西。 在主站点上需要看什么路线 http://jobsrus.com/companies/company-name # eg http://jobsrus.com/companies/microsoft 这导致了诸如的路线 http://jobsrus.com/companies/microsoft/jobs/ http://jobsrus.com/companies/microsoft/newest 在whitelabel网站上需要看什么路线 该公司还可以将作业板白色标记,使其看起来像这样: http://jobs.microsoft.com/jobs http://jobs.microsoft.com/newest 澄清差异 为了澄清,同样的controller#action将由两者提供: http://company-domain/jobs # and http://jobsrus.com/companies/company-name/jobs 丑陋的路由: 最简单的路由是: 的routes.rb resources :companies do … resources :jobs do … end end 这使: http://jobsrus.com/companies/microsoft/jobs # but also http://jobs.microsoft.com/companies/microsoft/jobs 而我们希望后者是: http://jobs.microsoft.com/jobs 如何从路线中删除第一级嵌套? 我的问题很简单。 如何从路线中删除companies/company-name嵌套级别? 白标网站唯一需要的路由是: 的routes.rb resources :jobs do … […]

Rails嵌套资源问题

我有一些资源,一个grant_application和一个与has_one相关的家庭 class GrantApplication :destroy end class Household < ActiveRecord::Base belongs_to :grant_application end ..我也使用以下路线.. map.resources :grant_applications do |grant| grant.resource :household end 但是,在尝试为/ grant_applications / 1 / household / new创建表单时,我遇到了实际问题 运用 返回错误: undefined method ‘grant_households_path’ for # 有任何想法吗?

不同的路由,但在Rails中使用相同的控制器进行模型子类

我有一个Model属性,它有使用STI的子类, 并且我希望所有人都使用相同的控制器,只有不同的视图部分取决于子类。 Property Restaurant < Property Landmark < Property 除了我不确定如何辨别控制器内的子类以呈现正确的视图之外,它还可以工作。 IE浏览器。 /餐厅工作,并去物业控制器,但我不能告诉他们,他们想要餐厅的子类? map.resources :restaurant, :controller => :properties map.resources :properties