当我尝试在本地加载我的Rails应用程序时,我才会得到以下错误。
无效的路由名称,已经在使用:“root”--您可能已经使用:as选项定义了两个同名路由,或者您可能正在重写由具有相同命名的资源定义的路由。对于后者,可以限制使用resources创建的路由,如下所示:
出于某种原因,它只会时不时地发生,通常在我刷新页面一次之后就会消失。它正在调用的文件将此作为代码(导致所指示的错误的行):
Rails.application.routes.draw do
get 'welcome/index'
# The priority is based upon order of
我是Ruby On Rails的新手。我看了很多教程来说明rails路线是如何工作的。我仍然无法理解,如果rails在路由中与GET命令匹配,然后转到控制器查看操作,那么当我的控制器完全没有动作时,它如何打开home/index在哪里是我的控制器。
My HomeController
class HomeController < ApplicationController
layout false
end
我的路线档案:
Rails.application.routes.draw do
root 'home#index'
get 'home/inde
我尝试使用推荐的方法(来自Rails指南)来测试在插件中生成的路由,但是测试总是失败。
奇怪的是,如果我在创建路由后重新加载路由(或者我认为是这样),测试会失败,但是如果我让测试通过一次(例如使用autotest),那么路由在后续的尝试中就会被识别出来。
代码如下:
describe "named route report_with_last_name_smith_path" do
before :all do
Reports::Application.routes.draw do
match "/report_some_report_for
下一个中间件导致Rails应用程序加载资产失败。
class Wtf
def initialize(app)
@app = app
end
def call(env)
request = Rack::Request.new(env)
# next line is causing all troubles
Rails.application.routes.recognize_path request.path
@app.call(env)
end
end
如果我将问题线替换为
Rails.application.routes.recogn
我正在学习Rails,我遇到了一个问题:
ActiveRecord::RecordNotFound在BookmarksController#show中找不到带有'id'=的书签
控制器:
class BookmarksController < ApplicationController
def index
@bookmarks = Bookmark.all
end
def show
@bookmark = Bookmark.find(params[:id])
end
def edit
end
目前,在我的本地开发环境中,理解如何将Ember应用程序连接到Rails API有一些困难。我对这种设置非常陌生,而不仅仅是运行纯Rails应用程序。
所以,当我运行这两个独立的应用程序时,看起来是这样的:
Ember app running on `localhost:4200`
Rails API running on `localhost:3000`
两个应用程序都位于同一个目录中。
Parent Directory
|
|___ API
|
|___ Ember App
当我访问两个本地主机URL时,这两个应用程序都在运行。Rails API似乎很好,但是Ember应用程序显示了默认的
我是rails的新手,有一个问题。
我想让我的控制器指向我创建的html.erb视图。
我尝试过不同版本的:
def index
render :"viewName"
end
def index
render :viewName
end
def index
render : "viewName.html.erb"
end
我的路由器设置如下:
Rails.application.routes.draw do
root 'application#index'
end
在视图中调用指定的路由帮助程序以NameError结束,以便进行以下配置:
routes.rb
scope :orders, as: :orders do
scope '/:order_id', as: :order do
post :returns, :to => 'order_returns#create'
end
end
$rake routes
orders_order_returns POST /orders/:order_id/returns(.:format) order_returns#create
当我将<%= or
class UserPreview < ActionMailer::Preview
# Accessible from http://localhost:3000/rails/mailers/notifier/welcome_email
def welcome_email
UserMailer.welcome_email(User.first)
end
end
我有这个简单的邮件预览使用Rails 4.1。
如果我注释掉了,我的routes.rb文件中的所有路由都只留下这个,则邮件预览会工作:
MyTestApp::Application.routes.draw do
好吧,
我正在将Rails 3应用程序从Rails 3.2升级到Rails 4.2。在阅读了升级说明和更改之后,我们遇到了一些PUT和PATCH路由的奇怪问题。
在Rails 3应用程序中,我们定义了以下路由:
resources :entities, except: [:show] do
member do
put :change_monitoring_status
end
end
运行rake routes时,change_monitoring_status路由显示为正确的PUT路由。使用Rails助手生成的表单将在Rails 3中生成正确的请求。
然而,在Rails 4