亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3233 | 回復: 3
打印 上一主題 下一主題

看rails3源碼的一些疑問 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-01-06 10:50 |只看該作者 |倒序瀏覽
在nested_attributes.rb有一段沒有理解

Ruby代碼
  1. existing_records = if association.loaded?   
  2.   association.to_a   
  3. else  
  4.   attribute_ids = attributes_collection.map { |a| a['id'] || a[:id] }.compact   
  5.   attribute_ids.present? ? association.all(:conditions => {association.primary_key => attribute_ids}) : [ ]   
  6. end  
復制代碼
這里的為什么會有else情況存在,而且如果是else情況的我覺得整個代碼就有問題了,得到的不是期望的結果。



同樣這個文件里有REJECT_ALL_BLANK_PROC = proc { |attributes| attributes.all? { |_, value| value.blank? } }

這里的下劃線_是什么意思?



第三個問題就是active_support中有一個Concern的類,里面有個方法叫append_features的方法,這個方法是什么時候調用的?

論壇徽章:
0
2 [報告]
發(fā)表于 2011-01-06 16:02 |只看該作者
本帖最后由 bugbugbug3 于 2011-01-06 16:03 編輯

Rails的源碼沒怎么看過。不過我可以說說的第二個關于下劃線的問題。
在ruby中,下劃線"_" 是標識符的合法組成部分。而且下劃線"_"本身就是一個合法的標識符。
如:
  1. _ = "Hello,Ruby!"

  2. p _
復制代碼
一般來說,如果你不關心某個變量的名稱,可以用"_" 。如:
  1. a = ["name","2011"]
  2. _,year = a

  3. p year
復制代碼
在這里,我不關心name,只關心把數組a中的年份。

一句話! “_” 和 其他變量一樣。

論壇徽章:
0
3 [報告]
發(fā)表于 2011-01-06 16:14 |只看該作者
回復 2# bugbugbug3


    3Q,非常3Q!

論壇徽章:
0
4 [報告]
發(fā)表于 2011-01-10 22:13 |只看該作者
看activesupport里面的dependencies.rb這個文件

append_features就是簡化了module在被include的時候哪些作為class method,哪些作為instance method的
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯網協會會員  聯系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP