类似拆订单那种业务?
杂七杂八啥都有,好吧,是挺全栈的
不过这条“Facebook 不可忽视的新功能”,不叫笔记吧
这个无需什么特别技巧吧,只要满足两个条件即可:https://en.wikipedia.org/wiki/Pure_function
其实是看你哪部分代码更加常变,更加容易与他人冲突
就像 java 的 aop,有人写在 xml,有人写在 model 的 annotation 上
如果 LZ 只是想少写一些括号的话
require 'active_support/core_ext/enumerable'
[{aa: '123'}, {aa: '321'}].pluck :aa
# => ["123", "321"]
把信息抓完之后,用 erb 或 nokogiri 生成都可以吧
require 'rexml/document'
require 'rexml/streamlistener'
require 'pp'
CPU = Struct.new :name, :frequncy
GPU = Struct.new :name, :benmark
class Listener
include REXML::StreamListener
attr_reader :xml, :items
def initialize
@xml =[]
@items = []
end
def tag_start name, attrs
xml << name
end
def text t
case xml
when ["computer", "cpu", "item", "name"]
items << CPU.new(t) if t =~ /amd/i
when ["computer", "cpu", "item", "frequncy"]
items.last.frequncy = t if not items.empty? and CPU === items.last and not items.last.frequncy
when ["computer", "gpu", "item", "name"]
items << GPU.new(t) if t =~ /radeon/i
when ["computer", "gpu", "item", "benmark"]
items.last.benmark = t if not items.empty? and GPU === items.last and not items.last.benmark
end
end
def tag_end name
xml.pop
end
end
listener = Listener.new
parser = REXML::Parsers::StreamParser.new(File.new("/tmp/t.xml"), listener)
parser.parse
pp listener.items
什么叫“总体结构不变”
没有分页吗?分页条件有没索引?外键有没索引?
能否换成 B.has_one A, dependent: :nullify?然后只查 A.b_id is null,无需 join
你是想照着 rails guide 来做的吗
class Connection < ActionCable::Connection::Base
identified_by :current_user
从提到的经历来看,LZ 是最近几年追逐前端工具而迷失了吗?
def self.active
where 'id in (?)', Post.recent.distinct.pluck(:user_id)
end
LZ 也不算普通吧
执行 block 前,重写 method_added,然后 class_eval 那个 block,之后恢复 method_added
北京?
挺想知道你说的“我是看着视频跟着一步一步操作的”的视频是?
不能吧
joins 的话会出现重复 post 和漏 post(不是所有 post 都有 comment 和 user)
includes 会查出多余 comment,之后还要在 ruby 中 filter
还是说有什么特别写法?(我新手……)
是的
controller:
@comments_by_curr_user = Comment.
where(post_id: @post.ids). # 若有分页
where(commenter: current_user).
group_by(&:post_id)
view:
<%= @posts.each do |post| %>
<%= post.name %>
<% @comments_by_curr_user[post.id].each do |comment| %>
partial .............
<% end %>
<% end %>
a1, a2, a3 = [:a, :b], [:c, :d], [:e, :f]
(1..3).each do |i|
binding.local_variable_get("a#{i}").each do |e|
puts e
end
end
(1..3).each do |i|
eval("a#{i}").each do |e|
puts e
end
end
再 generate 一个删除字段的 migration?
还招吗
看看它所用的 js 库加载成功没有
在 ruby 中,aop 可以简单地使用 alias_method/define_method/method_added 来实现,无需另外使用什么 InvocationHandler、cglib 那些繁复的东西
DI、IOC 在 java 中很着重我想是为了提醒 javaer 把各种动作抽象成一个个 interface,但在 ruby 中无需管你什么类型,只要你有这个 method id 就能调用,也就是 duck typing
ruby 本质上就是设计得这么动态
class variables are bound at compile-time
为什么三次?
Myc1.include Myc2; Mytest.inlcude Myc1; Mytest.include Myc2;
理解是否正确?
哪里有什么理解?
他下面不是解释了吗
fire off a DELETE /articles/:article_id/comments/:id to our CommentsController
如果函数是无需参数的,那就别用局部变量,每次都调用函数。
如果该函数计算很耗性能,就用该函数所属类的实例变量缓存一下
即使那个类不是你自己写的,也可以 prepend、extend 来制造缓存吧
LZ 是还在上学的吗