当我在url中输入mcca.example.com时,它会将我重定向到ncca.example.com。
如何在rails路由中实现此重定向?
constraints subdomain: "mcca" do
get "/", to: redirect { |params| root(subdomain: "ncca") }
end
如果我在/admin/sign_in中输入无效的用户名或密码。设计重定向到/administrators/sign_in而不是/admin/sign_in。
这是我的routes.rb
devise_for :administrators
devise_scope :administrator do
get "/admin/sign_in" => "devise/sessions#new"
end
rake routes | grep sing_in:
new_administrator_session GET /administrators/si
我可以在ruby on rails中禁用自动重定向吗,这里是我的示例:在我的控制器中
class WelcomeController < ApplicationController
def index
@a = params[:link]
if @a != nil
Kernel.system("ls")
redirect_to root_path
else
end
end
end
我不想重定向到root_path并停留在当前页面,所以我删除了redirec
刚刚更新到Rails6,在条件根路由方面遇到了问题 devise_scope :user do
authenticated do
root to: 'users#show'
end
unauthenticated do
root to: 'visitors#index'
end
end 我尝试在visitors#index中检查登录的用户并重定向到users#show,但现在我有了这个丑陋的URL '/users/:id‘,而不能用干净的根URL访问users#show。
当我尝试在本地加载我的Rails应用程序时,我才会得到以下错误。
无效的路由名称,已经在使用:“root”--您可能已经使用:as选项定义了两个同名路由,或者您可能正在重写由具有相同命名的资源定义的路由。对于后者,可以限制使用resources创建的路由,如下所示:
出于某种原因,它只会时不时地发生,通常在我刷新页面一次之后就会消失。它正在调用的文件将此作为代码(导致所指示的错误的行):
Rails.application.routes.draw do
get 'welcome/index'
# The priority is based upon order of
由于某种原因,这两个url都在路由到相同的文件,而它们不应该是这样的,这是我在输入一个无效的url(如localhost)时注意到的另一件事:3000/ such /inexjojvnsjg--它只是停留在同一个页面上。
下面是我的rails控制台在尝试访问url localhost:3000/topics/index时告诉我的内容
Started GET "/topics/index" for ::1 at 2015-02-06 17:33:07 -0700
Processing by TopicsController#show as HTML
Parameters: {
在我的应用程序控制器和路线下面,通常当我打开localhost:3000it显示位置/新页面时,现在我会被重定向到登录页面,这是很好的,但登录后它什么也不做……而它应该被路由到'positions#new‘
class ApplicationController < ActionController::Base
before_action :authenticate_user!
end
routes:
Rails.application.routes.draw do
devise_for :users
root to: 'positions#new'