确实是,embedded document 里面用 formfor(img) 没有意义。改成 has_many,再把 cargo_id 加到 img 里面就 ok 了。
@AlphaLiu 谢谢!倒是有这本书,还没有来得及看。谢谢你!
哦,我明白了。里面也有 return,只不过关注了后面的 return。 谢谢两位啦!
谢谢 @ashchan 之前 @ghjcumt2008 做了个总结,我觉得挺全面。翻出来,供大家参考!
总结 1.block 和 Proc 都是代码块,Proc 可以复用,block 不可以复用 2.block 和 lambda 不是类,Proc 是类,所以 block 和 lambda 是小写,Proc 是大写 3.lambda 是匿名函数 4.lambda 会对参数个数验证,Proc 不会验证 5.lambda 会执行 return,Proc 遇到 return 会中断
根据 @ghjcumt2008 9 个月前的一个总结说“lambda 会执行 return,Proc 遇到 return 会中断”,我修改代码如下。
def call_block(&block)
block.call(1)
return "1"
block.call(2)
return "2"
block.call(3)
return "3"
end
proc_1 = Proc.new { |i| puts "#{i}: Blocks are cool!" }
proc_2 = lambda { |i| puts "#{i}: Blocks are cool!" }
call_block(&proc_1)
call_block(&proc_2)
输出
1: Blocks are cool!
1: Blocks are cool!
从输出看,不管是 proc 还是 lambda,在执行完 block.call(1) 后,都进行了中断。