小编jus*_* so的帖子

将MongoDB中的_id类型更改为整数是不是很糟糕?

MongoDB对_id使用ObjectId类型.

如果我使_id为递增整数会不会很糟糕?

(有了这个宝石,如果你有兴趣)

ruby-on-rails mongodb mongoid

24
推荐指数
2
解决办法
2万
查看次数

BeautifulSoup .text方法返回没有分隔符的文本(\n,\ r \n等)

我试图从最大的俄语歌词网站http://amalgama-lab.com解析歌词,并将歌词(翻译和原创)保存到我的Vkontakte帐​​户的音频列表中(遗憾的是,amalgama没有任何API)

import urllib
from BeautifulSoup import BeautifulSoup
import vkontakte
vk = vkontakte.API(token=<SECRET_TOKEN>)
audios = vk.getAudios(count='2')
#{u'artist': u'The Beatles', u'url': u'http://cs4519.vkontakte.ru/u4665445/audio/4241af71a888.mp3', u'title': u'Yesterday', u'lyrics_id': u'2365986', u'duration': 130, u'aid': 166194990, u'owner_id': 173505924}
url = 'http://amalgama.mobi/songs/'
for i in audios:
    print i['artist']
    if i['artist'].startswith('The '):
        url += i['artist'][4:5] + '/' + i['artist'][4:].replace(' ', '_') + '/'     +i['title'].replace(' ', '_') + '.html'
    else:
        url += i['artist'][:1] + '/' + i['artist'].replace(' ', '_') + '/' +i['title'].replace(' ', '_') + '.html'
    url = url.lower() …
Run Code Online (Sandbox Code Playgroud)

python parsing beautifulsoup vk

10
推荐指数
3
解决办法
2万
查看次数

集成rails和angularjs

我试过Angular,我喜欢它.我已经开始将他整合到我的rails-app中,但后来出现了一些关于架构的疑问

  1. 路线.我想在没有刷新页面的情况下导航,在使用Wiselinks gem之前,它很容易和很酷 - 只需安装,修补link_to帮助并完成.但是角有他自己的路由器和ui-router(很酷).我希望我的应用程序在浏览器上运行,如Opera Mini和IE,但ui-router没有像wiselinks那样的回调.我不会创建移动网站版本 - 设计是自适应的.这意味着,我会使用rails路由,但我想要AJAX页面刷新它可以(渐进式的enchansement,是的).我该怎么办?

  2. 在许多地方,内容由Angular呈现,即帖子列表(通过ajaxing json).台式机上的快速和酷,但旧浏览器!我需要在服务器上为它们渲染它.或者我没有?

我被卡住了.谢谢.

ruby-on-rails angularjs

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

在助手规范中测试当前用户

我有一个非常基本的助手,它依赖于current_userSorcery在控制器和助手中提供的变量

def current_user_link
    user_link current_user
end

 def user_link(user, html_options = {}, &block)
   link_to user.to_s, user, html_options, &block
 end
Run Code Online (Sandbox Code Playgroud)

如何测试该助手?

describe UsersHelper do
  describe '#current_user_link' do
    it 'should return a link to the current user' do
      expected_link = link_to current_user.name, current_user
      ???

      expect(current_user_link).to eq expected_link
    end
  end
Run Code Online (Sandbox Code Playgroud)

我需要以current_user某种方式存根吗?甚至值得测试吗?

testing rspec ruby-on-rails helpers

5
推荐指数
3
解决办法
2849
查看次数

检查方法是否是rspec中另一个方法的别名

Article#to_archive是别名Article#archived!:

class Article
  alias to_archive archived!
end
Run Code Online (Sandbox Code Playgroud)

我需要确保这一点,所以我写了这个测试:

describe '#to_archive' do
  it 'is an alias to #archived!' do
    expect(subject.method(:to_archive)).to eq(subject.method(:archived!))
  end
end
Run Code Online (Sandbox Code Playgroud)

但是,我收到一个错误

Failure/Error: expect(subject.method(:to_archive)).to eq(subject.method(:archived!))

   expected: #<Method: Article(#<Module:0x00000005a7c240>)#archived!>
        got: #<Method: Article(#<Module:0x00000005a7c240>)#to_archive(archived!)>
Run Code Online (Sandbox Code Playgroud)

它曾用于红宝石<2.3 IIRC.我试过了alias_method,但没有用.

ruby methods

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

在Haskell中编写数学表达式的惯用法

我想用Haskell写下数学表达式.例如:

foo = (3 * 'x' + 2 * 'y' -- => 3x+2y
Run Code Online (Sandbox Code Playgroud)

有没有办法从下面改写实施这样的方式,AddMul可以通过运营商进行更换+,并*分别?

data Expr = Const Integer
          | Var Char
          | Add Expr Expr
          | Mul Expr Expr
          deriving (Show)
 ...
 foo =  Add (Mul (Const 3)  (Var 'x')) (Mul (Const 3) (Var 'y'))
Run Code Online (Sandbox Code Playgroud)

丑陋地狱.使用TypeOperators也不会起作用,它需要运算符在其前面:.

infixl 4 :+:
infixl 5 :*:, :/:
infixr 6 :^:

data Expr = Const Integer
          | Var Char
          | Expr :+: Expr
          | …
Run Code Online (Sandbox Code Playgroud)

haskell operators symbolic-math

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