小编Ste*_*eer的帖子

Rails has_many与`through`选项"失去"连接?

我有以下示例模型结构:

class Category < ActiveRecord::Base
  has_many :posts

  scope :active, -> { where(active: true) }
end

class User < ActiveRecord::Base
  has_many :posts
  has_many :visible_posts, -> { joins(:category).merge(Category.active) }, class: Post
  has_many :visible_posts_comments, through: :visible_posts, source: :comments

  has_many :comments
end

class Post < ActiveRecord::Base
  belongs_to :category
  belongs_to :user
  has_many :comments
end

class Comment < ActiveRecord::Base
  belongs_to :post
  belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)

现在User.first.visible_posts_comments引发以下错误:

ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR:  missing FROM-clause entry for table "categories"
LINE 1: ..." = "posts"."id" WHERE "posts"."user_id" = $1 AND …
Run Code Online (Sandbox Code Playgroud)

ruby-on-rails has-many-through rails-activerecord

11
推荐指数
1
解决办法
1233
查看次数

如何在快递中压缩 POST 请求数据?

我正在尝试构建一个可以使用 express 接受 gzipped POST 数据的服务器。我想我可以编写自己的中间件来将请求流通过管道传输到 zlib.createGunzip() 流。问题是,我怎样才能做到这一点,之后 express.bodyParser() 中间件仍然能够解析我压缩的 POST 数据?

我试图用 zlib 流的方法替换原始请求流方法,但这只会使 bodyParser 返回“错误请求”错误:

var express = require('express');
var app = express();

function gUnzip(req, res, next) {
  var newReq;
  if (req.headers['content-encoding'] === 'gzip') {
    console.log("received gzipped body");
    newReq = req.pipe(zlib.createGunzip());
    Object.getOwnPropertyNames(newReq).forEach(function (p) {
      req[p] = newReq[p];
    });
  }
  next();
}

app.use(gUnzip);
app.use(express.bodyParser());

app.listen(8080);
Run Code Online (Sandbox Code Playgroud)

有没有办法在我自己的中间件中不重写 bodyParser() 中间件的情况下完成这项工作?

编辑:这是同一个问题:使用 node + express 解压缩 POST body。但在答案中,他只是在自己的中间件中完成了 express.bodyParser() 应该做的事情,这是我想要避免的。我正在寻找一种方法来简单地从流中解压缩请求数据,然后将其传递给 bodyParser(),它需要一个流本身,如http://www.senchalabs.org/connect/json 所示。 HTML

gzip node.js express

5
推荐指数
1
解决办法
4404
查看次数

给CSS:内容一个类

我只是想知道是否可以将CSS类分配给由伪元素之后添加的内容.像这样的东西:

span:after {
  content: "after!"
  class: red
}
Run Code Online (Sandbox Code Playgroud)

我知道你可以指定几个样式属性,比如font-size等等,所以我可以想象应用类也应该是可能的.

实际上,我正试图通过bootstrap CSS附加一个glyphicon.但是很简单

span:after {
  class: icon-wrench
}
Run Code Online (Sandbox Code Playgroud)

没有这样做.

css

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