小编Kev*_*ker的帖子

使用Rails检索"top x"记录的最有效方法

我们已收到报告请求,并且我正在尝试找出最简单,最有效的方法来提取数字.

我有一个 具有两个属性的Deal模型:_quantity_purchased_和price.我被要求检索数据库中前100名最畅销的交易列表.为了了解交易的完成情况,我们将price_purchased乘以价格.

现在,我确信我可以编写一些令人费解的东西来获得我的结果,但这似乎是一个简单的操作,必须有一种更简单的方法.我可以在MySQL或Ruby/Rails中做些什么吗?或者我发现某种不愉快的循环?

仅供参考,我们正在运行Rails 2.3.

ruby mysql ruby-on-rails

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

Rails:如何对OrderedHash进行排序/重新排序

我有一个OrderedHash,从这里的答案生成,看起来像这样:

<OrderedHash {2=>"534.45",7=>"10",153=>"85.0"}>
Run Code Online (Sandbox Code Playgroud)

所以,我需要按降序对第二个值进行哈希排序.我试过这个:

var.sort! {|a,b| b[1] <=> a[1]}
NoMethodError: undefined method `sort!' for #<ActiveSupport::OrderedHash:0x127a50848>
Run Code Online (Sandbox Code Playgroud)

如何重新排序此OrderedHash?

sorting hash ruby-on-rails

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

Rails Paperclip - 跳过附件保存

有没有办法告诉回形针在某些情况下跳过保存附件?我正在运行一些后台任务,用附加的回形针文件更新模型,并在每次保存后重新保存这些附件.反正有没有绕过这个?

ruby-on-rails paperclip

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

Google webfonts和windows xp

我的网站正在使用谷歌字体,我遇到了一些与XP有关的问题.也就是说,因为默认情况下XP没有抗锯齿功能,所以即使在Firefox和Chrome等浏览器中,所有字体也都是像素化的.有没有办法纠正这个问题,或者XP用户只是坚持使用它?

fonts windows-xp google-webfonts

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

在生成器函数中使用 Yield 时,Typescript 不会推断 Promise 类型

我使用 Axios 来处理一些 API 获取,并且在生成器中执行该调用;async/await不是这个特定项目的选择。由于某种原因,即使axios我的类型正确,any当我使用yield关键字时,打字稿也会推断出类型。

function* foo() {
  // axios.get is returning Promise<AxiosResponse<T>>
  // but data is being inferred as "any"
  const { data } = yield axios.get<T>(url); 
  
  // do some stuff with data
}
Run Code Online (Sandbox Code Playgroud)

如果我专门输入 axios 响应,它工作正常,但我觉得我错过了一些东西,因为 TS 不会自动获取类型

function* foo() {
  const { data }: AxiosResponse<T> = yield axios.get<T>(url); 
  
  // do some stuff with data
}
Run Code Online (Sandbox Code Playgroud)

我还缺少其他步骤或配置吗?

这是我的 tsconfig

function* foo() {
  // axios.get is returning Promise<AxiosResponse<T>>
  // but data …
Run Code Online (Sandbox Code Playgroud)

javascript generator typescript axios mobx-state-tree

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

Git:使用还原或结帐撤消推送的更改?

Git是一个非凡的工具,但我还没有把我的思想包围在撤消推动变更的最佳方法上.这是情况.

我在一个分支上,已经向GitHub推送了几个提交.从那时起我就决定在兔子洞里走得太远了,我们需要废弃几件已经完成的工作,然后重新开始.从本质上讲,我需要将所有推送的提交撤回到前一个提交.以下是我认为合适的两个命令

git revert  # - creates a new commit that "undoes" the changes of one specific commit
git checkout 'commit SHA' # - sets the head to that specific commit, wherein I will re-push to the repo, undoing my changes... I think
Run Code Online (Sandbox Code Playgroud)

所以,我是对的吗?我是否需要对要返回的特定提交进行git checkout?或者这个错综复杂的过程中有什么我不理解的东西?

谢谢.

git git-revert git-checkout

5
推荐指数
2
解决办法
3990
查看次数

Rails 3:使一个包罗万象的路线更容易阅读和修改

我正试图在Rails 3中编写一个包罗万象的路线,但我想在其中保留一些术语.我特别关注这篇文章中提到的例子,在David Burrows的回答中:使用Rails 3的动态路由

我使用的语法如下:

match '*path' => 'router#routing', :constraints => lambda{|req|  (req.env["REQUEST_PATH"] =~ /(users|my-stuff)/).nil? }
Run Code Online (Sandbox Code Playgroud)

现在,该语法工作得很好 - 如果用户在路径中访问带有"user"或"my-stuff"的页面,它将通过catch-all进入特定位置.如果用户转到任何其他URL,它将转到我的路由逻辑.

我的问题更多的是关于可读性 - 有没有办法可以将路线与正则表达式之外的其他东西相匹配?有没有办法提供一系列匹配的术语?另外,有没有办法匹配路线的特定路段,而不是整个路段?

显然Rails有内置路由,但是这个项目要求对于某些路由,控制器不在URL中.因此,全面.

谢谢你的帮助

这是根据以下答案更新的路线文件:

class RouteConstraint
  RESERVED_ROUTES = ['users', 'my-stuff']

  def matches?(request)
    !RESERVED_ROUTES.map {|r| request.path.include?(r)}.empty?
  end
end

App::Application.routes.draw do
  resources :categories
  resources :sites

  match '*path' => 'router#routing', :constraints => RouteConstraint.new

  devise_for :users, :path_names =>{ :sign_in => 'login', :sign_out => 'logout', :registration => 'register' }
  root :to => "router#routing"
end
Run Code Online (Sandbox Code Playgroud)

routes ruby-on-rails catch-all

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

Backbone.js:从集合构建JSON数组

我有一个骨干系列Platforms.结构Platforms看起来像这样:

Platforms
  PlatformList
    models
      0: Platform
        attributes
          id: 1
          name: "some name"
      1: Platform
        attributes
          id: 2
          name: "some other name"
Run Code Online (Sandbox Code Playgroud)

我需要从集合中的模型中提取属性,并使用以下格式构建JSON数组:

[{"id":1,"name":"some name"},{"id":2,"name":"some other name"}]
Run Code Online (Sandbox Code Playgroud)

调用Platforms.models.toJSON()JSON.stringify(Platforms.models)生成文字字符串"[[object Object], [object Object]]"

如何从此集合构建我需要的JSON数组?

javascript json backbone.js

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

Javascript:正则表达式转义括号和空格

期望在javascript字符串中反斜杠转义括号和空格.

我有一个字符串:(some string),我需要它\(some\ string\)

现在,我这样做:

x = '(some string)'
x.replace('(','\\(')
x.replace(')','\\)')
x.replace(' ','\\ ')
Run Code Online (Sandbox Code Playgroud)

这很有效,但很难看.有更清洁的方法吗?

javascript regex escaping

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

CSS伪选择器类似于:valid或:选中select标签?

我正在尝试找到一种非JavaScript方式来select标记标记,如果它具有已选择的值.

例如,如果我有以下标记:

<select>
  <option value="">Select a widget...</option>
  <option value="1">Widget 1</option>
</select>
Run Code Online (Sandbox Code Playgroud)

是否有一个CSS选择器,我可以用来判断该select标签的值何时为空?

css html5 css-selectors css3

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