AngularJS和Rails路由错误 [英] AngularJS and Rails routing error
问题描述
我在下面的教程: https://thinkster.io/angular-rails/
和时,我得到的部分:集成前端与资产管道,事情打破;该网站陷在一个无限循环,并不断一遍又一遍产生同样的错误。我已经检查和复查每一步。可能有人请帮助:
错误:
在2015年4月17日11点55分43秒-0400入门GET/home/_home.html为:: 1ActionController的:: RoutingError(无路由匹配[GET]/home/_home.html):
ActionPack的(4.2.0)的lib / action_dispatch /中间件/ debug_exceptions.rb:21:在`呼叫'
Web的控制台(2.1.2)的lib / web_console / middleware.rb:37:在`呼叫'
ActionPack的(4.2.0)的lib / action_dispatch /中间件/ show_exceptions.rb:30:在`呼叫'
railties(4.2.0)的lib /导轨/架/ logger.rb:38:在`call_app
railties(4.2.0)的lib /导轨/架/ logger.rb:20:`呼叫块
的ActiveSupport(4.2.0)的lib / active_support / tagged_logging.rb:68:在`块标记
的ActiveSupport(4.2.0)的lib / active_support / tagged_logging.rb:26:在`标签
的ActiveSupport(4.2.0)的lib / active_support / tagged_logging.rb:68:在`标签
railties(4.2.0)的lib /导轨/架/ logger.rb:20:'叫'
ActionPack的(4.2.0)的lib / action_dispatch /中间件/ request_id.rb:21:在`呼叫'
机架(1.6.0)的lib /架/ methodoverride.rb:22:在'叫'
机架(1.6.0)的lib /架/ runtime.rb:18:在'叫'
的ActiveSupport(4.2.0)的lib / active_support /缓存/策略/ local_cache_middleware.rb:28:在`呼叫'
机架(1.6.0)的lib /架/ lock.rb:17:在'叫'
ActionPack的(4.2.0)的lib / action_dispatch /中间件/ static.rb:113:在`呼叫'
机架(1.6.0)的lib /架/ sendfile.rb:113:在`叫'
railties(4.2.0)的lib /导轨/ engine.rb:518:在`叫'
railties(4.2.0)的lib /导轨/ application.rb中:164:在`叫'
机架(1.6.0)的lib /架/ lock.rb:17:在'叫'
机架(1.6.0)的lib /架/ content_length.rb:15:在'叫'
机架(1.6.0)的lib /架/处理器/ webrick.rb:89:在'服务'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/webrick/httpserver.rb:138:in '服务'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/webrick/httpserver.rb:94:in '运行'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/webrick/server.rb:295:in`块start_thread
呈现/Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.7ms)
呈现/Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/routes/_route.html.erb (为0.8ms)
呈现/Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/routes/_table.html.erb (1.2ms的)
呈现/Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.3ms)
呈现/Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb救援内/布局(20.6ms)
呈现/Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/_markup.html.erb (0.3ms)
布局内呈现/Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/style.css.erb / inlined_string(0.3ms)
呈现/Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/_inner_console_markup.html.erb布局内/ inlined_string(0.5毫秒)
呈现/Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/_prompt_box_markup.html.erb布局内/ inlined_string(0.4ms)
呈现/Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/console.js.erb内部布局/ JavaScript的(17.4ms)
布局/ JavaScript的内呈现/Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/main.js.erb(0.3ms)
呈现/Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/error_page.js.erb内部布局/ JavaScript的(0.6ms)
呈现/Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/index.html.erb (33.9ms)
的Gemfile:
来源https://rubygems.org
#捆绑边缘轨道,而不是:宝石'轨',github上:导轨/导轨
创业板导轨,4.2.0
#使用SQLITE3的数据库活动记录
宝石'sqlite3的
#使用SCSS的样式表
创业板SASS护栏','〜> 5.0'
#使用Uglifier作为COM pressor JavaScript的资产
创业板uglifier','> = 1.3.0
#构建JSON API的自如。了解更多:https://github.com/rails/jbuilder
创业板的JBuilder','〜> 2.0'
#捆绑EXEC耙DOC:下轨DOC / API生成API。
创业板SDOC','〜> 0.4.0',组:DOC创业板角轨模板#使用加载ActiveModel has_secure_password
#创业板bcrypt','〜> 3.1.7#使用独角兽作为应用服务器
#宝石'麒麟'#使用Capistrano的部署
#创业板Capistrano的护栏',组:发展组:开发,:做测试
#呼叫'byebug在code任何地方停止执行,并得到一个调试器控制台
创业板byebug #访问的页面的异常或使用℃的IRB控制台;%=控制台%GT;在视图
创业板Web的控制台,〜> 2.0' #春季通过保持在后台运行的应用程序加速发展。了解更多:https://github.com/rails/spring
宝石'春天'
结束
application.js中:
// =需要角
// =需要的角度护栏模板
// =需要角UI路由器
// = require_tree。
routes.rb中:
Rails.application.routes.draw做
#优先级是基于创建顺序:首先创建 - >最高优先级。
#查看所有的路由如何布局以耙路线。 #你可以有你的网站与根路由的根
#根的欢迎#索引
根:应用程序#角
结束
application.html.erb:
<!DOCTYPE HTML>
< HTML和GT;
< HEAD>
<标题> FlapperNews< /标题>
<%= stylesheet_link_tag'应用',媒体:所有的'%GT;
<%= javascript_include_tag应用程序%>
&所述;%= csrf_meta_tags%GT;
< /头>
<机身NG-应用=flapperNews>
< DIV CLASS =行>
< DIV CLASS =COL-MD-6 COL-MD-偏移3>
< UI的视图>< / UI的视图>
< / DIV>
< / DIV>
< /身体GT;
< / HTML>
app.js:
angular.module('flapperNews',['ui.router','模板'])
的.config([
'$ stateProvider',
'$ urlRouterProvider',
功能($ stateProvider,$ urlRouterProvider){ $ stateProvider
.STATE('家',{
网址:'/家,
templateUrl:家/ _home.html',
控制器:'MainCtrl
}) .STATE('职位',{
网址:'/职位/ {ID}
templateUrl:帖子/ _posts.html',
控制器:'PostsCtrl
}); $ urlRouterProvider.otherwise('家');}])
应用程序/资产/ JavaScript的/家/ _home.html:
< DIV CLASS =页面页眉>
< H1>挡板新闻< / H1>
< / DIV>< DIV NG重复=帖子在帖子|排序依据:' - upvotes'>
<跨度类=glyphicon glyphicon-竖起大拇指
NG-点击=incrementUpvotes(岗位)>< / SPAN>
{{post.upvotes}}
<跨度风格=FONT-SIZE:20px的;保证金左:10px的;>
<一个NG秀=post.link的href ={{post.link}}>
{{post.title}}
&所述; / A>
<跨度NG隐藏=post.link>
{{post.title}}
< / SPAN>
< / SPAN>
<跨度>
< A HREF =#/职位/ {{$ index上}}>意见< / A>
< / SPAN>
< / DIV><形式NG提交=addPost()
风格=的margin-top:30PX;>
< H3>添加一个新的职位 - LT; / H3 GT&;
< DIV CLASS =表单组>
<输入类型=文本
类=表格控
占位=标题
NG-模式=称号>< /输入>
< / DIV>
< DIV CLASS =表单组>
<输入类型=文本
类=表格控
占位=链接
NG-模式=链接>< /输入>
< / DIV>
<按钮式=提交级=BTN BTN-小学>邮政和LT; /按钮>
< /表及GT;
遇到同样的问题。链轮的问题。
这里的解决方案:角Rails的模板只是不工作
在这里:<一href=\"http://www.ademartutor.com/angular-rails-templates-gem-error-with-sprockets-3-0-o/\">http://www.ademartutor.com/angular-rails-templates-gem-error-with-sprockets-3-0-o/
I am following the tutorial at: https://thinkster.io/angular-rails/
and when I get to the section: Integrating the Front-end with the Asset Pipeline, things break; the site gets stuck in an infinite loop and keeps producing the same error over and over. I've checked and rechecked each step. Could someone please help:
Error:
Started GET "/home/_home.html" for ::1 at 2015-04-17 11:55:43 -0400
ActionController::RoutingError (No route matches [GET] "/home/_home.html"):
actionpack (4.2.0) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'
web-console (2.1.2) lib/web_console/middleware.rb:37:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'
railties (4.2.0) lib/rails/rack/logger.rb:38:in `call_app'
railties (4.2.0) lib/rails/rack/logger.rb:20:in `block in call'
activesupport (4.2.0) lib/active_support/tagged_logging.rb:68:in `block in tagged'
activesupport (4.2.0) lib/active_support/tagged_logging.rb:26:in `tagged'
activesupport (4.2.0) lib/active_support/tagged_logging.rb:68:in `tagged'
railties (4.2.0) lib/rails/rack/logger.rb:20:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/request_id.rb:21:in `call'
rack (1.6.0) lib/rack/methodoverride.rb:22:in `call'
rack (1.6.0) lib/rack/runtime.rb:18:in `call'
activesupport (4.2.0) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'
rack (1.6.0) lib/rack/lock.rb:17:in `call'
actionpack (4.2.0) lib/action_dispatch/middleware/static.rb:113:in `call'
rack (1.6.0) lib/rack/sendfile.rb:113:in `call'
railties (4.2.0) lib/rails/engine.rb:518:in `call'
railties (4.2.0) lib/rails/application.rb:164:in `call'
rack (1.6.0) lib/rack/lock.rb:17:in `call'
rack (1.6.0) lib/rack/content_length.rb:15:in `call'
rack (1.6.0) lib/rack/handler/webrick.rb:89:in `service'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/webrick/httpserver.rb:138:in `service'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/webrick/httpserver.rb:94:in `run'
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/webrick/server.rb:295:in `block in start_thread'
Rendered /Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/rescues/_trace.html.erb (1.7ms)
Rendered /Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/routes/_route.html.erb (0.8ms)
Rendered /Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/routes/_table.html.erb (1.2ms)
Rendered /Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/rescues/_request_and_response.html.erb (1.3ms)
Rendered /Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/actionpack-4.2.0/lib/action_dispatch/middleware/templates/rescues/routing_error.html.erb within rescues/layout (20.6ms)
Rendered /Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/_markup.html.erb (0.3ms)
Rendered /Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/style.css.erb within layouts/inlined_string (0.3ms)
Rendered /Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/_inner_console_markup.html.erb within layouts/inlined_string (0.5ms)
Rendered /Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/_prompt_box_markup.html.erb within layouts/inlined_string (0.4ms)
Rendered /Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/console.js.erb within layouts/javascript (17.4ms)
Rendered /Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/main.js.erb within layouts/javascript (0.3ms)
Rendered /Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/error_page.js.erb within layouts/javascript (0.6ms)
Rendered /Users/MacKenzie/.rvm/gems/ruby-2.2.0/gems/web-console-2.1.2/lib/web_console/templates/index.html.erb (33.9ms)
Gemfile:
source 'https://rubygems.org'
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
gem 'rails', '4.2.0'
# Use sqlite3 as the database for Active Record
gem 'sqlite3'
# Use SCSS for stylesheets
gem 'sass-rails', '~> 5.0'
# Use Uglifier as compressor for JavaScript assets
gem 'uglifier', '>= 1.3.0'
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
gem 'jbuilder', '~> 2.0'
# bundle exec rake doc:rails generates the API under doc/api.
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'angular-rails-templates'
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'
# Use Unicorn as the app server
# gem 'unicorn'
# Use Capistrano for deployment
# gem 'capistrano-rails', group: :development
group :development, :test do
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug'
# Access an IRB console on exception pages or by using <%= console %> in views
gem 'web-console', '~> 2.0'
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
gem 'spring'
end
application.js:
//= require angular
//= require angular-rails-templates
//= require angular-ui-router
//= require_tree .
routes.rb:
Rails.application.routes.draw do
# The priority is based upon order of creation: first created -> highest priority.
# See how all your routes lay out with "rake routes".
# You can have the root of your site routed with "root"
# root 'welcome#index'
root to: 'application#angular'
end
application.html.erb:
<!DOCTYPE html>
<html>
<head>
<title>FlapperNews</title>
<%= stylesheet_link_tag 'application', media: 'all' %>
<%= javascript_include_tag 'application' %>
<%= csrf_meta_tags %>
</head>
<body ng-app="flapperNews">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<ui-view></ui-view>
</div>
</div>
</body>
</html>
app.js:
angular.module('flapperNews', ['ui.router', 'templates'])
.config([
'$stateProvider',
'$urlRouterProvider',
function($stateProvider, $urlRouterProvider) {
$stateProvider
.state('home', {
url: '/home',
templateUrl: 'home/_home.html',
controller: 'MainCtrl'
})
.state('posts', {
url: '/posts/{id}',
templateUrl: 'posts/_posts.html',
controller: 'PostsCtrl'
});
$urlRouterProvider.otherwise('home');
}])
app/assets/javascripts/home/_home.html:
<div class="page-header">
<h1>Flapper News</h1>
</div>
<div ng-repeat="post in posts | orderBy:'-upvotes'">
<span class="glyphicon glyphicon-thumbs-up"
ng-click="incrementUpvotes(post)"></span>
{{post.upvotes}}
<span style="font-size:20px; margin-left:10px;">
<a ng-show="post.link" href="{{post.link}}">
{{post.title}}
</a>
<span ng-hide="post.link">
{{post.title}}
</span>
</span>
<span>
<a href="#/posts/{{$index}}">Comments</a>
</span>
</div>
<form ng-submit="addPost()"
style="margin-top:30px;">
<h3>Add a new post</h3>
<div class="form-group">
<input type="text"
class="form-control"
placeholder="Title"
ng-model="title"></input>
</div>
<div class="form-group">
<input type="text"
class="form-control"
placeholder="Link"
ng-model="link"></input>
</div>
<button type="submit" class="btn btn-primary">Post</button>
</form>
Ran into the same issue. sprockets issue.
solution here: Angular Rails Templates just not working
and here: http://www.ademartutor.com/angular-rails-templates-gem-error-with-sprockets-3-0-o/
这篇关于AngularJS和Rails路由错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!