gpt4 book ai didi

ruby-on-rails-3 - Ember 路线和 Rails 路线

转载 作者:行者123 更新时间:2023-12-04 15:12:20 24 4
gpt4 key购买 nike

这是我自从开始研究 Ember 以了解它如何与 Rails 一起工作以来一直存在的问题。

Rails 有一个 routes.rb 文件,其中包含任意数量的现有路由。
Ember 有自己独立的一组路由。

当 Rails 中不存在路线时,浏览器如何知道要查找 Ember 路线?

rails 需要将浏览器重定向到 Ember 似乎是合乎逻辑的,但我没有看到任何地方写过。

在存在现有 Rails 应用程序的大多数情况下,routes.rb 中的路由扮演将资源转换为 api 的角色,并通过 url 使数据可用。

那部分很容易。我可以使用该 url.json 查看数据

我现在正处于尝试让浏览器通过 Ember 路由识别单个路由(在 Rails 中存在的许多路由)的阶段。

这与显示数据没有任何关系。我只想看模板渲染。

根据 Ember 框架中幕后发生的事情,我觉得浏览器只是神奇地识别了该路由(在 routes.rb 中没有提及 Ember 路由),但这并不是我在现实中所经历的。

我不断收到路由错误:
Started GET "/newslinks" for 127.0.0.1 at 2013-08-08 12:44:30 -0700
ActionController::RoutingError (No route matches [GET] "/newslinks"):

这是我的 application.js

//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require jquery-fileupload/basic
//= require jquery-fileupload/vendor/tmpl
//= require chosen-jquery
//= require bootstrap
//= require bootstrap-notify
//= require jquery.limit-1.2.source
//= require bootstrap-switch
//= require handlebars
//= require ember
//= require ember-data
//= require_self
//= require app

这是我的 app.js:
App = Ember.Application.create({
LOG_TRANSITIONS: true,
ready: function() {
console.log('App ready');
}
});

App.Router.map(function() {
this.resource('newslinks', { path: '/' });
});

App.IndexRoute = Ember.Route.extend({
redirect: function() {
this.transitionTo('newslinks');
}
});

App.NewslinksRoute = Ember.Route.extend({
model: function() {
return App.Newslink.find();
}
});

DS.RESTAdapter.reopen({
namespace: 'api/v1'
});

App.Store = DS.Store.extend({
revision: 13
});

App.Newslink = DS.Model.extend({
name: DS.attr('string')
});

有人告诉我这实际上应该有效,但事实并非如此。目前不知道还有什么地方可以寻求帮助,所以如果您有任何建议或有一点时间并想在这个问题上自由职业,请告诉我。

编辑

添加routes.rb以供引用:
namespace :api do
namespace :v1 do
resources :newslinks
end
end

最佳答案

How does the browser know to look for an Ember route when the route does not exist in rails?



它没有。当你在浏览器中输入一个 url 时,它会向服务器发出请求,然后 rails 应该响应一些内容。因此,在这种情况下,当请求“/newslinks” url 时,您希望 rails 使用包含您的 ember 应用程序的 HTML 页面进行响应。

加载该页面后,ember 应用程序将启动,然后 ember-router 将用于处理 ember 应用程序上下文中的链接。

有道理?

关于ruby-on-rails-3 - Ember 路线和 Rails 路线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18134789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com