待遇不错,项目方向也挺有趣
如果是 v2ex 下面的回帖必然是:又是一个只差程序员的。。。
没有特殊情况当然就是 belongs_to :member
因为这是大家都了解的默认约定。
2 年前做项目时候遇到过类似问题,当时调研发现只有付费的方案
#2 楼 @lmorenbit 是 github 上面很流行的 awesome 系列,这样的 repo 有很多,比如下面这个 https://github.com/flyhigher139/awesome-collection
用 haml
搞清楚 BLOCKS, PROCS, AND LAMBDAS 三者的关系和区别就不会再有这样的疑问了。
简单的说,你传递过去的是一个 block,而 blocks 不检查传入的参数个数,所以你爱传几个参数就都行。而 lambdas 是匿名方法,它才会检查参数的个数。
正因如此,当我们有如下的代码
class Object < ActiveRecord::Base
scope :by_app, ->(app_id) { where(application_id: app_id) }
end
当你传入的参数个数不对的时候就会报错啦。
请看下文中,BLOCKS, PROCS, AND LAMBDAS 这一段。 http://wjp2013.github.io/ruby/codecademy-ruby/
这代码是错的
require 'rubygems'
require 'json'
content = %Q({\"credentials\"=>{\"token\"=>\"F538FF45937887AF7246E50928E0961F1\", \"refresh_token\"=>\"6EC400DD7B547B401D29474EA68952145\", \"expires_at\"=>1418310654, \"expires\"=>true}})
hash = JSON.parse content.gsub!('=>', ':')
puts hash.class
#=> Hash
叫我雷锋侠
如果你在产品环境 config.cache_classes = true
那么每一次请求都会让你的代码重载一次。性能将成为悲剧
招聘贴一方面可以带动社区新帖的数量,另外可以给人一种“哇塞,这么多招聘 Ruby 程序员的公司,而且待遇还这么好!我一定要好好学习。“
而好好学习,自然会遇到很多问题就需要来社区请教,并且多来社区看看新的技术风向了。
还有一点,并不是所有人都在 BAT 之类的大公司,一辈子不想挪窝了。虽然换工作是一件深思熟虑的事情,但是如果看到了特别好的机会,即便现在有工作的人也会动心想跳槽呢。或者,至少看看其他公司最近招聘的时候需要什么样的技术条件,自己也好有一个努力前进的方向。而现在把招聘拿出去之后,至少这一部分人就很少点开了。
@linjunhalida 经测试,我觉得下面的写法是可以的
class User < ActiveRecord::Base
has_many :members
has_many :roles, through: :members
scope :by_role, ->(role) { joins(:roles).where(roles: { id: role }) }
end
class Member < ActiveRecord::Base
belongs_to :user
has_many :member_roles
has_many :roles, through: :member_roles
end
class MemberRole < ActiveRecord::Base
belongs_to :role
belongs_to :member
end
class Role < ActiveRecord::Base
end
查询可以这样
User.by_role(2).to_sql
生成的查询是
"SELECT \"users\".* FROM \"users\" INNER JOIN \"members\" ON \"members\".\"user_id\" = \"users\".\"id\" INNER JOIN \"member_roles\" ON \"member_roles\".\"member_id\" = \"members\".\"id\" INNER JOIN \"roles\" ON \"roles\".\"id\" = \"member_roles\".\"role_id\" WHERE \"roles\".\"id\" = 2"
用了 40 分钟,专门建了个应用写了测试......至于查询效率问题,你看看这个 SQL 就知道了......
补充一下:按照楼主的写法,可以改成
class User < ActiveRecord::Base
has_many :members
scope :by_role, ->(role) { joins(members: :roles).where(roles: { id: role }) }
end
#45 楼 @chiangdi 如果你使用的是 github,那么根据 https://help.github.com/articles/closing-issues-via-commit-messages 的解释,在 github issue 系统中,fix 和 fixed 都会关 close issue。这里看来并无不同。
至于你问为什么不用 fixed,我想更多的原因是一种习惯性约定,当执行 merge 和 revert 的时候能让 commit message 更符合语义?
Write your commit message in the imperative: "Fix bug" and not "Fixed bug" or "Fixes bug." This convention matches up with commit messages generated by commands like git merge and git revert.
http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
我是从这里看到的。如果有错漏,请一定帮忙指正,谢谢。
我上次出现这样的问题都是代码写错了,要么少了一个 end 要么 class 拼错。
我的建议是你做个简单的爬虫,把本站所有会员个人资料里面的网址都抓下来
经验之谈 Rails + Grape 更好。 试过纯 Rack + Grape 估计跟 Sinatra 的问题是一样的。需要自己管理多线程的数据库连接。
别的不多说,redis 写了两次怎么个意思?而且好多功能一样的 gem
说到底一句话,因为开发 rails 的程序员想做全栈,所以从前端页面效果到服务器优化部署都想一个人搞定,自然需要了解的东西多
#1 已经给了标准答案
最怕的就是全文都在一个 md 文件中,要是能按照章节区分 md 文件就好多了
请把 apache 或者 nginx 做好转发规则
beta 的时候已经买了,现在去下载最新版本,谢通知