Tag: 路线

Rails3 + Devise:何时在devise_for和嵌套资源中嵌套资源

我什么时候应该在devise_for块中嵌套路由? 请举一两个例子来说明用例。 (路线#1) 如果:foo_object与:users so :user has_one :foo_object相关联,我是否需要嵌套:foo_object :users ? (路由#2) :users是设计:users模型。 路线#1: devise_for :users resource :foo_object 路线#2: devise_for :users resources :users do resource :foo_object end

如何在Ruby on Rails中创建一个catch-all路由?

我希望所有满足特定约束的请求都转到特定的控制器。 所以我需要一条全能的路线。 如何在Rails中指定? 这是这样的吗? match ‘*’, to: ‘subdomain_controller#show’, constraints: {subdomain: /.+\.users/} 这真的会抓住所有可能的路线吗? 即使有许多嵌套目录,重要的是没有任何漏洞。 使用Ruby on Rails 3.2,但准备升级到4.0。 更新 : ‘*path’似乎有效。 但是,我遇到的问题是只要文件存在于我的public目录中,Rails就会呈现它。

如何在Rails应用程序中正确安装github的gollum wiki?

我正在尝试通过将其作为机架应用程序安装到我的routes.rb文件中来为我的应用程序提供基于gollum的wiki: require ‘gollum/frontend/app’ #Gollun config gollum_path = Rails.root Precious::App.set(:gollum_path, gollum_path) Precious::App.set(:wiki_options, {:universal_toc => false}) TestWiki::Application.routes.draw do mount Precious::App, :at => “wiki” end wiki应该在’/ wiki’运行,但每次去这个url它会将我重定向到/wiki/create/Home ,在创建一个页面之后它将我重定向到/wiki/wiki/page_name 。 我错过了一些选择吗? 这有可能吗?

嵌套资源路由助手无法正常工作

我有一个像这样的嵌套路线: resources :apps do resources :issues end 查看与应用程序相关的所有问题的帮助程序如下: app_issues_url(app) 但现在我想使用帮助器指向特定应用程序的特定问题,如apps / 1 / issues / 1但我不知道如何使用该帮助程序。 这个url的帮手是什么?

在Rails 3中使用用户名绘制路径w / devise

鉴于使用设计管理的用户与“事物”之间的一对多关系,我的目标是绘制如下的宁静路线: http://host/username http://host/username/things http://host/username/things/1 … 我知道Rails路由中的嵌套资源 ,但我无法弄清楚如何将它应用于通过设计创建和管理的通用用户模型。

Rails 3 route将_index附加到路由名称

我正在将Rails 2.3.8版本迁移到Rails 3.0,因此我重写了我的路由文件。 当我使用rake routes列出rake routes ,我看到一些路由名称附加了_index 。 我无法弄清楚为什么会这样。 相关路线: Rails 2.3.8: map.namespace “tracker”, :path_prefix => “” do |planner| planner.resources :planner, :collection => {:step1 => :get, :add => :get, :unsubscribe => [:get, :post] } end Rails 3.0路线: namespace “tracker”, :path => “” do resources :planner do collection do get :step1 get :add get :unsubscribe post […]

Rails路由:name而不是:id url参数

我有一个名为’公司’的控制器,而不是每个公司的url用以下表示:id我想让url使用他们的:名称如: url/company/microsoft而不是url/company/3 。 在我的控制器中我假设我会 def show @company = Company.find(params[:name]) end 由于url中没有任何其他参数,我希望rails能理解:name引用了我公司模型中的:name列。 我认为这里的魔法会在路线上,但我在这一点上陷入困​​境。

用rails 4设计认证的根路由不起作用

我想做什么 我想将用户发送到注册#new页面,如果他们没有登录。 输入登录信息并单击“提交”后,我希望您将其发送到注册#show页面。 怎么了 当您未登录时,它会将您发送到注册#new页面(到目前为止正确)。 但是当您提交登录表单时,它会通过重定向循环发送错误。 服务器的输出就是这个块一遍又一遍地重复: Started GET “/” for 127.0.0.1 at 2013-09-25 02:31:59 -0400 Processing by RegistrationsController#new as HTML User Load (0.7ms) SELECT “users”.* FROM “users” WHERE “users”.”id” = 8 ORDER BY “users”.”id” ASC LIMIT 1 Redirected to http://lvh.me:3000/ Filter chain halted as :require_no_authentication rendered or redirected Completed 302 Found in 2ms (ActiveRecord: […]

设计路由:有没有办法从Rails.application.routes中删除路由?

devise_for创建包含DELETE路由的路由,我们要删除它, devise_for不支持:except或:only选项。 如何从Rails.application.routes删除路由? 在draw块中,还是之后? 以下是错误的详细信息,这是我们需要删除路由的原因。 我们向自定义UJS控制器操作发出DELETE请求 在控制器操作中,我们删除了我们想要的内容,然后执行302重定向。 这是一个坏主意,我们已经通过返回一些JSON来纠正它。 一些客户端在收到302后会向重定向发出一个新的DELETE请求,该请求路由到Devise删除路由! 从而无意中删除了这个人! 让人惊讶。 我们假设这将是一个GET。 不好的假设。 这个错误已经修复,但我想删除该路由。 以下是我最后所做的事情,这是由何塞·瓦利姆引用的赏金获胜者所建议的: 在config/routes.rb ,我在devise_for调用上面添加了这个,它设置了其余的’people’路由: delete ‘/person’, :to => ‘people#destroy’ 然后在我现有的people_controller.rb ,我添加了一个no-op方法: def destroy render :nothing => true end 我仍然有点烦恼,没有一种简单的方法可以从RouteSet中删除路由。 此外,设备控制器仍然存在delete路由,但它不会被调用,因为rails在config/routes.rb查找第一个匹配并返回它。

用户的不同’/’根路径,具体取决于它们是否经过身份validation(使用设计)

我正在编写一个rails应用程序,其中我有一个编辑器和一个出版物模型。 我正在使用设计编辑器身份validation,并且由于编辑器不能作为访客执行任何操作,我编写了一个用于登录页面的自定义布局,我希望访客用户只能看到登录页面。 现在我正在尝试在我的应用程序中实现以下行为但未成功: require ‘spec_helper’ require ‘capybara/rails’ describe “Authentication” do describe “when logged in” do before(:each) do @editor = Factory(:editor, :password => ‘secret’) visit ‘/’ fill_in ‘Login’, :with => @editor.login fill_in ‘Password’, :with => ‘secret’ click_button ‘Sign in’ page.should have_content(‘Signed in successfully.’) end it “getting / should render publication page with no redirection” do visit […]