小编est*_*ner的帖子

在最新的Ember中,如何链接到仅包含模型的id/name的路由,而不是在链接页面中提供其所有属性?

从Ember 1.0- pre2转换为最新版本(43354a98)和新路由器时遇到问题,即 -

如果我有一个路由只加载一堆记录的名称和ID,并尝试将每个记录链接到另一个应该显示完整模型的路径,当我到达新路径时,新模型永远不会被加载,名称和ID是唯一可用的属性.

示例代码:

App.Router.map(function() {
  this.route("index");
  this.resource("birds");
  this.resource("bird", {
    path: "/birds/:bird_id"
  });
});

App.BirdsController = Ember.ArrayController.extend({
  birds: [
    {
      name: "Pigeon",
      id: "b.15"
    }, {
      name: "Chicken",
      id: "b.133"
    }, {
      name: "Turkey",
      id: "b.126"
    }, {
      name: "Ostrich",
      id: "b.4"
    }, {
      name: "Barn Owl",
      id: "b.47"
    }
  ]
});

App.BirdRoute = Ember.Route.extend({
  model: function(params) {
    return App.Bird.find(params.bird_id);
  }
});

{{#each bird in birds}}
  <li>{{#linkTo "bird" bird}}{{bird.name}}{{/linkTo}}</li>
{{/each}}
Run Code Online (Sandbox Code Playgroud)

其中App.Bird.find()运行一些XHR来从一组远程API(不使用ember-data)构建Ember.Object.仅为此示例将鸟类列表硬编码到控制器中,以简化问题; 在我的实际应用程序中,该列表来自远程API.

我看到的行为是,如果你开始/鸟类并点击其中一个链接,路由器将转换为'bird',你到达/#/birds/b.5,但App.Bird.find()是从来没有打电话,我在页面上的唯一数据是"name"和"id".但是,如果您重新加载页面,它会调用App.Bird.find()并正确构建并显示模型.

有没有办法从URL中的ID强制反序列化,或者只是将ID传递给linkTo而不是它将假定完成的对象?我有一个类似的实现与旧路由器正常工作.

ember.js ember-router

15
推荐指数
1
解决办法
8818
查看次数

如何在Rails 3.0中将SSL选项传递到"rails server"?

有没有办法将SSL选项传递到"rails服务器"(在Rails 3.0.0上),使用自定义Rack配置或类似的东西?我正在尝试做两件事:

  1. 使Cucumber能够运行涉及安全和非安全URL的测试,以及
  2. 为新开发人员简化一些事情,因此他们不必设置Apache并配置所有SSL /证书的东西,甚至可以编写一行代码.

在2.3.8上,我们有一个分叉的脚本/服务器,可以在第二个端口上启动一个特殊的WEBrick,并带有所有适当的SSL选项.当然,当我尝试升级到Rails 3时会爆炸,所以我试图弄清楚如何解决这个问题,理想情况下这样做不需要任何东西.

在我们的分叉脚本/服务器中,我们设置了如下选项:

:SSLEnable        => true,
:SSLVerifyClient    => OpenSSL::SSL::VERIFY_NONE,
:SSLPrivateKey        => OpenSSL::PKey::RSA.new(File.open(current_dir + "/config/certs/server.key").read),
:SSLCertificate         => OpenSSL::X509::Certificate.new(File.open(current_dir + "/config/certs/server.crt").read),
:SSLCertName    => [ [ "CN", WEBrick::Utils::getservername ] ]
Run Code Online (Sandbox Code Playgroud)

但我不知道如何在新框架中这样做.

谢谢你的帮助!

ssl https rack ruby-on-rails-3

6
推荐指数
1
解决办法
4119
查看次数

如何打开Ember v2路由器API中的控制台日志记录?

在路由器API的v1中,您可以设置此标志:

App.Router = Ember.Router.extend({
  enableLogging: true
});
Run Code Online (Sandbox Code Playgroud)

并且路由器会将状态更改记录到console.log,这有助于调试.这似乎不再起作用了 - 有谁知道这个标志是否有新的等价物?

router ember.js

4
推荐指数
1
解决办法
1726
查看次数

标签 统计

ember.js ×2

ember-router ×1

https ×1

rack ×1

router ×1

ruby-on-rails-3 ×1

ssl ×1