这里有我的脚丫印😄

程序媛


  • 首页

  • 归档

《小狗钱钱》读书笔记四

发表于 2017-12-24 |

以下全是摘自《小狗钱钱》

“如果你没有做今天这件事情,你就永远不会知道,给自己一些压力之后,你能够做到些什么。一个人觉得最引以为豪的事情,往往是那些做起来最艰难的事情。这一点你千万不要忘记。”

基金就像一口大锅,许多没有时间、没有相关的知识或者没有兴趣亲自去买股票的投资人都会把钱投进这口锅里,这些钱由金融界的专家–也就是所谓的基金经理人–去投资买股票。国家对此进行严格的监督,基金经理人必须遵守一定的规定。比如,他们至少必须购买 20 种不同的股票。

“在实际情况中,会有几种股票行情下跌,有几种上涨,还有几种几乎保持不变。总体来说行情还是上涨的,因为基金经理人相当精通此道。”

“要是所有的股票行情都下跌,该怎么办呢?”

“那你就不要卖出。你还记得上回我们谈起股票的时候说的话吗?在这种时候,只有当你把股票实际卖出的时候,才会有损失。”

“那我们只能把不是马上要用的钱投进基金里,对不对?”

“完全正确!”老太太高兴地说,“如果我们打算投资买基金,就要准备把自己的钱在里面放上 5~10 年。对于那些能等这么长时间的人来说,基金几乎是一种零风险的投资。”

基金符合投资的一切要求。由于它的这些特点,它也非常适合儿童和青少年。如果能够在 5~10 年内不动用这些钱,基金投资是很保险的,它会带来丰厚的利润、、、

“平均收益率 12% 是有可能的,”陶穆太太回答说,“参考很多成功的基金,长期以来,它们的利润都保持在这个水平上。”

基金也符合第三条原则,它很容易操作,几乎就像在银行开一个普通的账户一样简单。

挑选基金时的注意事项:

  1. 基金应该至少有 10 年历史。假如它在这么长时间内一直有丰厚的利润,那我们可以认为,未来它也会运作良好。
  2. 应该选择大型的跨过股票基金。这种基金在世界各地购买股票,以此分散风险,所以十分安全。
  3. 对基金的走势图进行比较。我们应该观察在过去 10 年间哪些基金的年终利润最好。

陶穆太太替我们准备好了一张列有 10 种基金的名单,上面写着这些基金的规模,最近 10 年内的和最近 3 年内的利润情况。另外,上面还写着这些基金购买的股票来自何处,甚至还有哪几家公司的股票它买得特别多也写在里面。

“你们直接用 72 除以你们投资的年利润百分比,得出的数字就是这笔钱翻一倍所要的年数。”

“要想知道 15% 的时候会怎么样,那我就必须用 72 除以 15,等于 4.8 年”

“只有当我们把它卖出的时候,才会有亏损。可是我们并没有这么做。”

“第一次股市行情暴跌的时候,我的反应和你们完全一样。我痛恨自己为什么要买下这些股票,而且我非常担心行情会继续下跌。在这种时候,报纸上充满了悲观的预测,说这是世界性经济危机的开端,是证券交易所永远的冬天。”

“我经历过好几次这种所谓的危机,可是行情总在一两年之后又恢复了,每次都是如此。所以,以后即使再发生行情暴跌的情况,我也能保持镇定。”

“‘冬天’这个词已经说明了问题,这是一年四季中的一个季节。冬天过后,春天就来了,接着是夏天,每个夏天之后又跟着是秋天,然后又是冬天,年年如此。跟大自然的变化一样,交易所里也有四季更替,循环往复。”

“没错,我们试不知道。没有人能知道,所有试图预测未来走势的专家总是计算失误,意想不到的情况很多。正因为如此,你应该始终储备一些现金。决不能把你全部的钱都投资在股票或者基金上面。”

“按 72 除以 3% 的通货膨胀率,得到 24,就是说 24 年以后,你的钱只值现在的一半。”

“你总不能把你所有的钱都投资买股票。就算你还很年轻,也该留一些现金做储备。只有这样才能达到分散风险的最佳效果。”

他这样做是希望我不依赖他,自己能对自己的财务状况负责。

我每天写两页–这一点也不难,因为我的成功日记上都有记录。我从写作中获得了巨大的乐趣。

以前他曾经怀疑自己究竟适不适合独立创业,但现在他知道,只要学会把某些自己不喜欢做而又不擅长做的事情交给别人就行了。

当一个人不需要再为钱的问题烦心之后,竟然会发生如此巨大的变化,真令人难以置信。

有‘困难’是一件好事,因为它逼得我四处寻找新的途径,可以学到很多新东西。

我严格的按照老办法分配这笔钱:50% 用来让鹅长大,40% 用来帮助实现我的目标,剩下 10% 用来零花。

马塞尔曾经想卖出手里的基金,他说这叫提取利润。陶穆太太却问他准备怎样处置这笔钱,怎样让它继续增长。我们得出的结论是:再次选择同样的基金进行投资。于是马塞尔立即意识到现在卖出基金毫无意义。

钱钱继续说道:“重要的是,你能不能听到并且理解我说的话。就先给你现在写的这本书,有一些人读过之后不会有任何改变,而另一些人读过之后开始聪明地理财,他们会拥有更幸福更富有的生活。”

不要为失去的东西而忧伤,而要对拥有它的时光心存感激。

我们回到家,我写道:

我希望能有很多人听到这本书说话的声音,我和一只名叫钱钱的小狗将会感到非常高兴。
– 吉娅

钱钱拆除了偏见的围墙让人眼前豁然开朗,它告诉我们:经营活动并不是童工劳动,而是一种能激发人的热情的游戏;赚钱并不枯燥,相反会带来激动人心的时刻,释放人的发明创造的才能。

从小开始赚钱的人拥有对依赖思想的抵抗力,不会乐意让别人来养活自己。而且自己赚钱的人不会成为不断膨胀的消费欲望的奴隶。从事商业活动有助于人们以理智的态度珍惜和使用有限的资源。

我们推崇一种聪明的、简朴的生活方式。也就是说,宁愿购买一件一流产品,也不要不停地购买许多的二流产品。而且,不要仅仅因为一件产品的外观不再时髦而新产品正在流行,就不断追逐新鲜的东西。

要想有所成就,必须从小做起。

什么水企业家素质呢?这是一个在英语国家常用的概念,很难找到恰当的译法。它指的是一种发展、革新的经营观念,以及将这种观念贯彻在市场中的能力。

股票

股票是一家公司的股权证明–你可以购买这家公司的一份或若干份股权。每一份股权就是一张股票。如果公司赢利(赚钱),你就可以根据自己所拥有的股份数量,从公司的利润中分得一部分。你的股份越少,分到的利润就越少;股份越多,分到的利润就越多。如果公司亏损,那么你所持有的股票就会贬值。在这种情况下,你不应该急于卖出股票,而应该等待公司重新赢利。

投资

一方面,投资是指通过获取利息使钱的数目增加,比如将钱投资买股票,或者存入银行;另一方面,通过购买任何一件日后会增值的物品,比如艺术品、房产、古董等,也可以进行投资。

交易所

交易所是一种特别的市场,是商人们为了进行商业交易而举行定期聚会的场所。交易所根据市场情况,并且根据官方的价格调控使供应和需求达到平衡。

基金

处于特定用途而集中的资金(特殊财产)。

抵押

简而言之,抵押就是把地产等抵押品作为债务担保的行为。当房子所有权人负债时,他可以抵押这栋房子,作为法律上和经济上换款的保证,但这样一下来,他的地产就记入了债权人名下。这就是说,这栋房子的所有权受到了限制,如果债务人–也就是房子所有权人–出售他的房子,获得的收益必须交给债券人。

通货膨胀

通货膨胀就是货币贬值。现在用 5 马克可以比 10 年后买到更多的东西,也就是说,货币的价值随着时间的增长而不断减少。

利息

如果你将资金借给银行(就是说把钱存入一个账户),银行就付给你一定的金额作为回报。如果你借给银行 3000 马克,银行会按一个规定的利率–比如 3%,付给你利息,这样你每年都会得到 3000 马克的 3%,也就是 90 马克。

复利

你可以和银行约定,每年年终时将利息计入本金。我们还以上面的数字为例,那么你第二年的本金加在一起就达到了 3090 马克,这笔钱又重新开始产生利息:3090 的 3% 是 92.7 马克。这样继续下去,下一年的本金就是:3090 + 92.7 = 3182.70 (马克)。以此类推,之后每年都这样计算。

《小狗钱钱》读书笔记三

发表于 2017-12-22 |

以下全是摘自《小狗钱钱》

金先生看上去十分快乐,而爸爸妈妈却恰恰相反,总是不太高兴。直觉告诉我,贫穷更容易产生不幸。

“显而易见,假如我总是花光我的钱,那我就永远得不到我的‘鹅’,所以我就总觉得为了赚钱而工作。而一旦我有了一直‘鹅’,我的钱就会自动为我工作了。”

我发现,最重要的是,现在我的自我感觉简直好极了。我突然意识到,这主要不是因为我有了钱,而是因为我每天都过得很充实,因为我努力去了解一切新事物。我每天都会思考许多问题–我以前从没这样做过。

最重要的是,我第一次尽最大努力去做一件事。这很可能是一个重要的变化。

“你干的活最多只值报酬的一般,另一半报酬来源于你的想法和实施这个想法的勇气。”

我决定以后绝不给我的孩子太多的零花钱,而是指导他们记成功日记,让他们自己挣钱,越早越好。

“那你父母就跟许多人一样有错误的想法。要想过得更幸福、更满意的生活,人就得改变自身。这个钱无关,金钱本身不会使人幸福,也不会带来不幸。金钱是中性的,既不好,也不坏。只有当钱属于一个人的时候,它才对这个人产生好的影响或者坏的影响。钱可以被用于好的用途,也可以被用于坏的用途。一个幸福的人有了钱会更幸福;而一个悲观忧虑的人,钱越多,烦恼就越多。”

他用一种恳切的目光望着我,说:“我生命中出现了最好的东西,是因为我做了原本不敢做的事。”

“你可以做一个有能力帮助别人的人,而别人也会相信你,愿意接受你的帮助。”钱钱解释说。

”每当你觉得事情不好办的时候,你可以做一件事,“等我歇了一口气,钱钱说:”只要你翻一翻成功日记,你就会从过去的事情中找到证据,相信自己的未来也有能力完成任何事情。“

”当你朝着积极的目标去思考的时候,就不会心生畏惧。“

投资俱乐部:
我们一致认为,只要学会了我们的咒语,就可以从无到有地变出钱来。
我们的咒语是:

  1. 确定自己希望获得财务上的成功。
  2. 自信,有想法,做自己喜欢做的事。
  3. 把钱分成日常开销、梦想目标和金额账户三部分。
  4. 进行明智的投资。
  5. 享受生活。

  6. 每月聚会一次。

  7. 出席会议是每个成员的义务。
  8. 每人都要交出一定数额的现金。
  9. 不得将该钱取出,因为我们希望‘鹅’长大。
  10. 所有的决策由全体成员共同作出。

投资注意三点:

  1. 应该把钱投资在安全的地方。
  2. 我的钱应该下很多”金蛋“。
  3. 我们的投资应该简单明了。

老太太和蔼地接过话茬说:”这正是很多大人也会有的问题。对股票,每个人都知道一点点,可是很少有人清楚它到底是什么东西“

”你们设想一下,“老太太继续说,”假设马塞尔花 2500 马克为他的面包派送业务买一台电脑,就会大大减轻他的工作量,还可以节省很多时间。可是他不想为此花自己的钱。这样的话,他可以借钱。一是选择向银行借,也就是贷一笔款,可是那样的话,他就必须定期还贷款,另外还要支付利息。另外还有一种完全不同的选择,他可以向你们求助,请你们借钱给他的公司,这样不用定期还钱,也不用支付利息。假设你们每个人借给他 800 马克“

”为什么我们要这样做呢?“莫妮卡茫然地问道。

”这就是关键的一点,“陶穆太太连忙解释,”只有当你们能从这件事中得到好处的时候,才会去做。如果马塞尔让你们参与他公司的分红,那么你们这样做就有意义了。“

”怎么进行呢?“我想知道。

”比如说,你们可以约定,每人拥有他公司 10% 的股份。我们就算他的公司价值 1 万马克吧。“

”我们怎么知道它值多少呢?“

”决定一件东西价值多少的唯一因素就是,你愿意为它支付多少钱。“老太太解释说。

马塞尔立即又有了一个想法:”也许会有另一个面包商愿意把它买下来,这样他还会有新顾客,这肯定是划算的。“

陶穆太太接着数:”如果他现在想把公司卖掉,而且有人愿意出 1 万马克购买,那他的公司市值就是 1 万马克。他拥有 80% 的股份,也就是 8000 马克。你们两个人每人拿到 10% ,也就是 1000 马克。“

”那我拿到的钱就比给他的钱多 200 马克!“莫妮卡欢呼。

”就是说,我们是有卖掉公司,然后才能赚到钱?“

”不完全是,“老太太回答道:”也可能会有另一个人想要从你手里买下这 10% ,那就由你决定卖什么价钱。假设你开价 1100 马克,那你就能很快赚一笔。“

”那我不如开价 2000 马克。“莫妮卡叫道。

”这不是不可以,“陶穆太太同意说,”但这样的话,可能就没有人要买下你手里的 10% 了。因为只有当别人相信这些股份将来可以卖出一个更好的价钱的时候,他才会买进。这就是每天在交易所里发生的事情。交易所是人们聚在一起买卖公司股份的地方,每个人都希望将来会有人以更高的价钱买下他手里的股份。“

”但是这谁能说的准呢?“我一边思考一边说。

”你说得很对,“老太太同意我的说法,”不够还是有人可以预测马塞尔的公司是不是有升值的潜力。“

”如果我的公司升了值,那你们的股份也会更值钱。“马塞尔领悟了,说道,”如果有些人看到了继续升值的希望,可能会用更高的价钱买下我的公司的股份。“

”这正式股票的好处,“老太太轻快地说,”你不需要自己开公司,只要在公司参股就行,你所用的方法就是购买公司的股份,也就是股票。“

”就是说,我可以用自己的钱让别人替我工作。“莫妮卡高兴地说。

我还有点将信将疑:”可是要是没有人肯买我的股份怎么办?“

”那你必须降低价格,直到有人认为‘这时买件肯定值得’为止。买主总是有的,但问题是价格是多少。“老太太解释说。

”那就是说,我也可能亏损。“我用不甚满意的语气说。我一点儿也不喜欢这样。

”是的,“陶穆太太同意我的说法,”但是只有当你出售股票的时候,你才会亏损。如果你保留着这些股份,将来可能会有人愿意付更多的钱买进。“

”那么这段时间里我就什么也得不到?“我很想知道一切。

”不,在这期间,你参与所有的分红。“老太太马上打消了我的疑虑,”每当公司赢利,就会把利润分配给所有持股份的人,这叫红利。“

”也就是说,马塞尔必须定时从他的收入中拿出一部分,交给我们?“莫妮卡兴奋地问。

”公司要每年计算一次赢利,然后再决定把这些钱用来做什么。币如可以用一部分钱购买新设备,让公司运作得更好,其余部分分配给所有持有股份的人。“

”这由谁来决定呢?“莫妮卡问。

”所有持股份的人,少数服从多数,这叫股东大会。“陶穆太太告诉我们。

”我喜欢这个主意。马塞尔管理公司必须知道的东西,我自己不一定要会。“莫妮卡为自己总结了一下这次谈话的内容,”但是我凭着手里的股份,就能和他赚的一样多,这简直太妙了“

”不过你还是得对公司有相当的了解才行。“我补充说。

我又看了一遍写的投资三大原则的那张纸,对陶穆太太说:”听了您讲的这些,我觉得股票既不保险,也并不是很简单明了、容易操作。好像只有第二点符合,容易赢利。“

”要是自己去买股票,的确是这样的。“陶穆太太赞同我的说法,”但也可以让别人帮你选择哪家公司的股票。“

”我觉得,这种方法比较适合我。“我说出了自己的感觉,”但是到底谁能帮我们做这件事呢?“

”这一点,下次聚会的时候我会慢慢告诉你们。“陶穆太太语气坚定地,“今天我们已经学了一大堆东西,又把钱存进了银行。下次我们再讨论股票的问题吧。实际上,每个孩子都可以从股票上赢利,就算不太懂这方面的知识也没关系。”

“不必马上开始投资。在投资之前,你们得想一下自己要做些什么。在我们开始行动之前,我要给你们讲一种绝妙的投资方法。另外,我还要给你额们准备有关的资料。有一种方法让你们可以做任何一家公司的股东,任何你们喜欢的公司都可以。”

“那我下次会告诉你们,怎样使自己成为这几家公司的股东。”老太太卖了个关子,神秘兮兮地说。

《小狗钱钱》读书笔记二

发表于 2017-12-22 |

以下全是摘自《小狗钱钱》

我需要一本相册。我拿出了一本旧的纪念册–这个应该可以派上用场。现在我要把笔记本电脑和加利福尼亚的照片贴进去。但是我惊讶的发现,我没有任何有关加利福尼亚的照片或是广告,什么也没有。我意识到我真的没有重视过自己的愿望。于是我决定明天立即去收集广告。

“因为这是最关键的。知道如何去实现并不是目前最重要的事情。最重要的是,你真的有这样的愿望,否则你一遇到困难就会放弃了。”

钱钱显得有点激动,它说:“你自己也住在这栋房子里,你自己也享用这个花园,你帮忙干活是理所应当的,不能因此跟爸爸妈妈要钱。再说,爸爸妈妈为你做了很多事,他们也没有要你付过什么钱呀!”

但是在讲故事之前,我先要告诉你一个非常重要的道理:你是否能挣到钱,最关键的并不是你有么有好点子,也不是你有多聪明,而是你的自信程度。“

”你的自信程度决定了你是否相信自己的能力,是否相信你自己。假如你根本不相信你能做到的话,那么你就根本不会动手去做,而假如你不开始去做,那么你就什么也得不到。“

”那么我可以告诉你。你去准备一个本子,给它取名叫‘成功日记’,然后把所有做成功的事情记录进去。你最好每天都做这件事,每次都至少 5 条你的个人成果,任何小事都可以。“

”他偶然得到了一个机会,可以与一位非常成功的商人谈话。当他与商人讲述了自己的‘破产史’后,商人给了他两个重要的建议:第一,为别人解决一个难题,那么你就能赚到许多钱;第二,把精力集中在你知道的、能做的和拥有的东西上“

“其实从达瑞把精力集中在他知道、能做和拥有的东西上的那一天起,他的成功就已经拉开了序幕。这一决定使得一个孩子完全有能力挣到比成人更多的钱,因为成人经常把一生的时间都用来考虑他们不知道、不能做或没有的东西上。”

无论在什么时候都不能把希望寄托在一份工作上,它持续的时间不会像你设想的那么长,所以你要立即寻找另一份替代的工作。

”这我理解,“钱钱答道,”可是,这正是许多没有钱的人爱犯的错误。他们总是有那么多紧急的事情要多,以至于没有时间来关注重要的事情。“

钱钱严肃的看着我说:”我要告诉你 3 件重要的事情。首先,在遇到困难的时候,仍然要坚持自己的想法。一切正常的时候,每个人都能做到这一点。只有当真正的困难出现时才能见分晓。只有少数人能坚定不移地贯彻自己的计划。那些非常成功的人,甚至有能力在他们最困难的时候作出最杰出的表现。“

”情况顺利的时候,人人都能挣到钱。只有在逆境中,一切才能见分晓。“

”你为此花费的时间不会超过 10 分钟,但是就是这 10 分钟会让一切变得不同。大多数人总是在现有的水平上停滞不前,就是因为他们没有拿出这 10 分钟。他们总是期望情况能向有利自己的方向转变,但是他们忽视了一点,那就是他们首先必须改变自己。“

”很简单。当你决定做一件事情的时候,你必须在 72 小时之内完成,否则你就很可能永远不会再做了。“

”大多数人都认为工作肯定是一件艰苦而令人不愉快的事情,“他向我解释道,”其实只有做自己喜欢的事情的人,才能真正获得成功。“

第一,欠债的人应当毁掉所有的信用卡。因为大多数人在使用信用卡的时候,会比使用现金时花的钱要多得多。

第二个忠告是,应当尽可能少地偿还贷款–也就是大人们说的分期付款。也许这个忠告听起来有点可笑,但你要知道,分期付款额越高,每个月剩下的生活费就越少。

”因为他们想尽早还清贷款,这样他们就不必付利息了。“
”因此人们想要立即还清 1 万马克,这听起来完全合乎逻辑的。因为付的利息要比偿还的钱还多。第一眼看上去是这样的,如果每年偿还 1%,虽然需要支付的利息逐年减少,但最后总共支付的利息数额仍会达到贷款数额的 3 倍左右。为了能快一点还清 1 万马克贷款,人们当然选择每年付较高的分期付款。许多人和银行约定的分期付款额刚好在他们承受能力的上限,因此他们手里的钱一直很紧张。大多数情况下,他们没有估计到生活费会那么高。当他们必须购置一辆新汽车或者家里的什么东西坏了的时候,他们只得通过再次贷款来偿付这些东西的账单。“

”你是说,他们用新的贷款来偿还旧的贷款?“我惊讶地问。

”正式。“钱钱答道,而且我从它的表情中看出,它感到很高兴,因为我立即明白了它的话。

  1. 毁掉信用卡。
  2. 在许可范围内按最低的分期付款数目标准支付。

第三个忠告是针对消费贷款的。消费贷款是与住房无关的贷款。假如人们为了购置新的汽车、家具、电视机或其他用于生活的商品而贷款,就是消费贷款。这时候贷款的人应当遵守的一个原则,就是将不用于生活的那部分钱的一半存起来,另一半用于偿还贷款。

”他们不需要等到还清债务以后再开始存钱,他们可以现在立即开始,只有这样,他们才有能力在不申请新的贷款的情况下,满足自己的愿望。那样他们也才能心安理得地、更好的享用这些东西。“

”此外,所有的消费贷款都是不明智的。聪明的做法是只把以前积攒起来的财富用于支出。“

  1. 将扣除生活费后剩下的钱一半存起来,剩下的一半用于支付消费贷款。最好根本不申请消费贷款。

”然后还有最后一个忠告,“钱钱的眼中闪动着快乐的光芒,”债务人都应该在自己的钱包里贴一张纸条,上面写着‘这真的有必要吗’。这样的话,当他站在收银台前的时候,就会想到不应该花太多的钱。“

  1. 这真的有必要吗?

”金先生是以为不同寻常的人,他总是做一些非同寻常的事情。他不在乎别人做什么,只要他认为正确的事情,他就会去做。“

”吉娅,大多数人都是这么想的,我曾经也这么想。可是请你告诉我,为什么不能因为做了一件自己喜欢的事情而挣到钱呢?“

”恰恰因为你喜欢我的钱钱,我才要每天付你 10 马克,因为由此我知道,它在你身边过得很舒服,你也会继续好好照顾它。正是你的真情实意才让你的劳动显得那样珍贵。“

”你要花钱,这是对的,因为钱的用处正在于此。但是如果你想变得富有,你同时还要存钱,这笔钱是你绝不会再花的。“

”可是,假如我永远不能花这些钱,那我存它干什么呢?“我诧异地问。

”为了让你能依靠它来生活“金先生给我解释说,”这样吧,我给你讲个故事。“

”从前有一个年轻的农夫,他每天的愿望就是从鹅笼里捡一个鹅蛋当早饭。有一天,他竟然在鹅笼里发现了一只金蛋。当然,一开始他不相信这是真的。他想,也许是有人在捉弄他。为了谨慎起见,他把金蛋拿去让金匠看,可是金匠向他保证说,这只蛋完完全全是纯金铸成的。于是,农夫就卖了这只金蛋,然后举行了一个盛大的庆祝会。“

”第二天清晨,他起了一个大早,赶到鹅笼处一看,那里真又放着一个金蛋。这样的情况延续了好几天。“

”可是这个农夫是一个贪婪的人,他对自己的鹅非常不满意,因为鹅没法向他解释是怎么下出金蛋的,否则也许他自己就可以制造出金蛋了。他还气呼呼地想,这只懒惰的鹅每天至少应该下两只金蛋,现在这样的速度太慢了。他的怒火越来越大,最后,他终于怒不可遏地把鹅揪出鹅笼,劈成了两半。从那以后,他再也得不到金蛋了“

”我讲这个故事就是为了告诉你,‘不要杀死你的鹅’。“金先生向后靠了靠,他的眼光中充满了期待。”那么我要给你讲一讲这则小故事的寓意。“金先生慢悠悠地说,”鹅代表你的钱。如果你存钱,你就会得到利息。利息就相当于金蛋。“

”大多数人生来并没有‘鹅’。这就是说,他们的钱不足以让他们依靠利息来生活。“

”你需要的钱其实比你想象的要少得多。“金先生答道,”如果你有 2.5 万马克,能得到 12% 的利息的话,那每年就有 3000 马克。“

”哇!“我兴奋地叫出了声,”那每个月就是 250 马克。而我根本不需要动用我的 2.5 万马克。“

”正是如此。“金先生对我的说法表示同意,他接着说,”那么 2.5 万马克就是你的‘鹅’,而你是不会‘杀’它的。“

”比如你挣了 10 马克,那么你可以分配一下这笔钱,把其中的大部分存入银行,然后把一部分放入你的梦想储蓄罐,剩下的当作零花钱。“

”我的习惯是把我收入的 50% 变成我的‘鹅’。“

”我已经想好该怎么分配我的钱了,我也要把 50% 的收入变成我的‘鹅’,40% 放入我的梦想储蓄罐,剩下的 10% 用来花“

”我们最好从很小的时候就开始做这件事,这样就很容易将其变成一种理所当然的习惯。你最好能立即着手做这件事。明天就去银行,给自己开一个账户。下一次见面的时候我会教你如何使用你的账户,然后再给你一张支票,你可以拿它到银行去兑换。“

”越是把注意力放在疼痛上,我就越会觉得疼。谈论疼痛就像给植物施肥一样。所以我很多年前就已经改掉了抱怨的习惯。“

《小狗钱钱》读书笔记一

发表于 2017-12-19 |

以下全是摘自《小狗钱钱》

事实上,理财和实现富有对老百姓来说未必只意味着沉重与艰辛;理财和你热爱的其他任何事业都可如童话般有趣,如童话般简单。只要你诚实、自信、轻松、快乐,并乐于学习。

假如我们有足够的钱,我们能生活得更有尊严,也能更好地为自己和他人服务。认为我们必须忍受拮据的生活,甚至认为这样才是高尚的–这种想法是人类犯下的最重大的错误之一。

成功的故事很少有精彩的翻版,但是故事中包含的道理却可以帮助我们在遭遇困难时找到最佳的出路。同样,当我发现读者开始崇拜作者本人,而没有掌握书中叙述的古老真理时,我也有些不安。个人的经历是很难效仿的,但最基本的真理却完全可以复制。

本书的线索和最重要的一些原则:

  1. 一开始,必须明确金钱对你的意义。
  2. 确立最重要的目标。为什么我们必须特别强调在我们“长长的愿望清单中”的某几个目标?
  3. 为什么梦想储蓄罐和梦想相册很重要?我们的潜意识如何支持着我们?我们为此需满足哪些前提条件?
  4. 为什么仅有较高的收入绝不可能解决我们的财务难题?
  5. 如何使我们不放弃已经作出的决定–想象的艺术。
  6. 总会有一些人想要阻止我们实现自己的目标,阻力甚至来自我们的亲戚朋友,但还是有一些不让自己迷失的方法。
  7. 为什么一本成功日记能促使我们的收入不断增加?为什么自信是最关键的因素?
  8. 人们如何将自己最大的爱好作为职业,并由此再次大幅度提高自己的收入?
  9. 重要性和紧迫性之间有什么区别?如何保证在任何情况下都不偏离制定的目标?
  10. 付诸实施的关键:72小时规定。
  11. 如何以轻松的方式挣到许多钱?
  12. 关于如何处理债务的 4 个忠告。
  13. 一只下金蛋的鹅的故事–人们如何量入为出。
  14. 如何正确使用银行并使之成为一种乐趣?
  15. 幸福的本质以及我们如何才能获得更多的幸福。
  16. 爱钱有什么不对吗?保险箱里留多少现金比较合适?
  17. “金钱是‘中性’的”指的是什么意思?钱与幸福之间有什么联系?
  18. 归还我们的一部分所得是十分重要的。(做慈善和公益事业)
  19. 对待恐惧的最佳方式。成功日记所起的作用。
  20. 增加金钱的最有效途径之一投资俱乐部。保证成功的 5 条规定。
  21. 白手起家的魔法。
  22. 适用于所有投资的 3 条最重要的规定。
  23. 什么是股票?股票是如何运作的?收益是如何产生的?你是否适合股票投资?
  24. 为什么偶尔放弃熟悉的环境、从事我们畏惧的事情很重要?
  25. 怎样确保每年获得 12% 以上的利息?近乎完美的投资形式和投资战略是什么?
  26. 为什么股票基金是保险的,而且可以为你带来丰厚的利润?挑选保险的基金的 3 个注意事项。
  27. 投资基金为什么很简单?
  28. 在投资基金的情况下,你的钱变成了什么–利滚利的力量。
  29. 浮动利率:如何平衡风险和赢利。
  30. 如何轻松地计算利息和复利?
  31. 当汇率下跌时应当做什么?如何在这种情况下获得高额利润?
  32. 用基金获得可靠的高利润的前提。
  33. 通货膨胀的真正含义以及如何轻松计算出它对财产的影响。如何使通货膨胀成为你最好的朋友–当你正确选择投资对象时。
  34. 金钱对我们生活中的其他领域会产生什么影响?当我们更多的研究金钱这个题目时,将会发生怎样的变化?

只需要一点思想的火花就足以让你走上富裕的道路。可是在这里,我还想提醒你注意一个令人惊讶的事实,在某种程度上也作为一个预先的提醒–一旦丰厚的资产开始流动,其速度之快和数量之大都可能让你吃惊:以前它们都藏到哪里去了?

这个现象还纠正了广为流传的错误观点–人们只能通过多年艰苦的工作才能实现富裕。财富应该是某种思想观点、某种以富裕为导向的信仰的产品。只要满足了这些前提条件,那么这一切比大多数人想象的都要简单得多。

大多数人对自己的财务状况关心得不够。

正如一句名言所说:”并非困难使我们放弃,而是因为我们放弃,才显得如此困难。“

一个人能否安排好自己的花费,是在他人生的早期就决定了的。

如果你愿意,我可以帮助你,让钱成为你生活中一种令人愉快的力量。

”天下难事,必作于易;天下大事,必作于细。“

如果你带着这样一种态度来做这件事的话,我的方法肯定发挥不了作用。但是只要你做 3 件事,就可以轻易改变自己的想法。第一,我建议你拿一本相册作为你的梦想相册。收集一些与自己愿望有关的照片,把它们贴在相册里。我们要通过图片来思考。

”不是试试看,而是去切实行动!如果你只是抱着试试看的心态,那么你只会以失败告终,你会一事无成。‘尝试’纯粹是一种借口,你还没有做,就已经给自己想好了退路。不能试验,你只有两个选择–做或者不做。“

”第二件你可以做的事,就是每天看几遍相册,然后想象着,你已经在美国了,已经拥有笔记本电脑了,还要想象你替爸爸还清债务后自豪的神情。“

”人们把这种行为称作‘视觉化’。成功的人之所以成功,就是因为他们一直梦想这只成功的那一天,不停地想象着自己实现了理想时的情形。当然,人不能停留在梦想里,你妈妈要对你说的是这一层意思。“

”学习就是认识新观念和新想法的过程。假如人们始终以同一种思维方式来考虑问题的话,那么始终只会得到同样的结果。因为我对你讲述的许多内容是你以前从未接触过的,所以我建议你,在你还没有做之前,不要轻易下结论。没有想象力的人是很难成就大事的。我们对一件事投入的精力越多,成功的可能想也越大。可是大多数人把精力放在自己并不喜欢的事情上,而不去想象自己希望得到的东西。“

”你可以做的第三件事就是准备一个梦想储蓄罐。“

”是的,因为没有钱的话,你就去不成加利福尼亚。最好的攒钱方法之一就是使用梦想储蓄罐。你随便那一个罐子,然后在这个罐子上写上你的梦想,把它作为你的储蓄罐。但是你要为自己的每一个梦想各准备一个储蓄罐。一旦储蓄罐准备好,你就应当把省下的每一分钱放进去。“

我们首先必须学会量入为出,只有这样,我们才有能力获得更多的钱。

有一只海鸥曾经对我说过:”‘在你展翅飞翔之前,你就必须相信自己能到达目的地。’你必须设想自己已经拥有了这些东西,这样你的一个小愿望才会变成一种强烈的渴望。你想象得越多,你的愿望就越强烈,那么你就会开始寻找机会来实现自己的梦想。吉娅,机会到处都是,但是只有在你寻找它的时候,你才能看见它。只有当你心中有了强烈的渴望,你才会去寻觅机会。而当你想象的时候,强烈的渴望就产生了。“

一段代码的重构

发表于 2017-12-19 |

第一次

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def update_encourage_count!
thanks = [[*0..2], [*1..5]]
hugs = [[*0..3], [*1..5]]
handclaps = [[*0..5], [*2..7]]
if votes.exists?
choiced_thanks = thanks[1]
choiced_hugs = hugs[1]
choiced_handclaps = handclaps[1]
else
choiced_thanks = thanks[0]
choiced_hugs = hugs[0]
choiced_handclaps = handclaps[0]
end
self.thanks_count = thanks_count.to_i + choiced_thanks.sample
self.hugs_count = hugs_count.to_i + choiced_hugs.sample
self.handclaps_count = handclaps_count.to_i + choiced_handclaps.sample
save!
end

第二次

1
2
3
4
5
6
7
8
9
10
11
12
def update_encourage_count!
thanks = [[*0..2], [*1..5]]
hugs = [[*0..3], [*1..5]]
handclaps = [[*0..5], [*2..7]]
choiced_thanks = votes.exists? ? thanks[1] : thanks[0]
choiced_hugs = votes.exists? ? hugs[1] : hugs[0]
choiced_handclaps = votes.exists? ? handclaps[1] : handclaps[0]
self.thanks_count = thanks_count.to_i + choiced_thanks.sample
self.hugs_count = hugs_count.to_i + choiced_hugs.sample
self.handclaps_count = handclaps_count.to_i + choiced_handclaps.sample
save!
end

第三次

1
2
3
4
5
6
7
def update_encourage_count!(thanks = [[*0..2], [*1..5]], hugs = [[*0..3], [*1..5]], handclaps = [[*0..5], [*2..7]])
choiced_thanks, choiced_hugs, choiced_handclaps = votes.exists? ? [thanks[1], hugs[1], handclaps[1]] : [thanks[0], hugs[0], handclaps[0]]
self.thanks_count = thanks_count.to_i + choiced_thanks.sample
self.hugs_count = hugs_count.to_i + choiced_hugs.sample
self.handclaps_count = handclaps_count.to_i + choiced_handclaps.sample
save!
end

关于读书,我想说的

发表于 2017-12-01 |

从小听到大,几乎所有的人都知道读书是好的,读书是长知识的,读书是有用的。

可是,很多人读不下去。

如果你能把长篇大论的文章,甚至是一本书都能读完,你该内心自豪了,因为好多人表示读不下去。

我写的文章,发给我妈妈看,妈妈说,她看不懂。其实我是不相信这句看不懂的,因为我写的文章哪有什么多大的学问呢?

很多人,不读书,因为看不下去。

我是这两年才开始陆续买书,去年的双十一,买过好几百块钱的书,因为半价,然而,到现在也没读几本。

我经常问自己,以前不读书,可以拿小时候家里穷从没买过课外书为由,现在拿什么理由不读书呢?所以,现在我有空就会记得读点书。

但是,开始的时候,建议还是选择自己想了解的感兴趣的书读,因为,别人说的经典,自己一开始或许没有这个水平去读,或许根本毫无兴趣,自然读不下去。我去年双十一买的那么多经典,买回来了又怎样,读不下去啊。

另外,就算自己想读的,但是硬着头皮还是没读下去的,先放着吧,如果你真想读完,又难以坚持,那就大致浏览一下,有个印象吧。我听罗胖推荐的《必然》,看他做了十几篇读书笔记,觉得这书该读一读啊,然而读了很久,最终还是没有读完,我就暂时放下了。

我觉得这种放下,不是放弃。你可以继续寻找自己真正能读下去的书,然后慢慢来。等到量上去了,自己就会建立读书的信心了,而且,读的多了,慢慢读不懂的也就有机会读懂了。

一开始,你可以搜索一下,自己曾经听过的书,或者找自己感兴趣的图书分类,可以先不买实体书,用阅读软件就挺好;在地铁上在任何想看的时候,可以随时拿出来看。如果你有经常读书的朋友,你也可以让他帮你推荐几本,但是别人推荐的你不一定喜欢看,没关系,慢慢找就好了。我觉得微信读书就挺好的,和你的微信好友有关联,你可以查看他们的书架,看看他们都读些什么。

我最近在微信读书阅读了几本了,自己很开心。因为我终于开启了我的读书旅程。
在这个旅程中,我慢慢体会到了读书的乐趣,且能扩大点知识面。但当涉猎,见往事耳。以前课本学的文章,我常常回忆,这让我知道我该做点什么。

初,权谓吕蒙曰:“卿今当涂掌事,不可不学!”蒙辞以军中多务。权 曰:“孤岂欲卿治经为博士邪(语气词,通“耶”)!但当涉猎,见往事耳。 卿言多务,孰若孤?孤常读书,自以为大有所益。”蒙乃始就学。及鲁(lù)肃过寻阳,与蒙论议,大惊曰:“卿今者才略,非复吴下阿蒙!”蒙曰:“士别三日,即更刮目相待,大兄何见事之晚乎!”肃遂(suì多音字)拜蒙母,结友而别。

Rails 曾经迷惑的小知识二

发表于 2017-11-30 |

以下都是参考自:Ruby on Rails 实战圣经,里面有很多好用的小知识,也是曾经走过的坑,一点点知道的,这里面给整理的很好。(因为部署在台湾吧,所以加载很慢,等等就会加载出来网页了)

Unobtrusive JavaScript

Rails 使用一种叫做 Unobtrusive JavaScript(UJS) 的方式來加载內建的 JavaScript 功能,也就是你在 app/assets/javascripts/application.js 里面载入的 //= require jquery_ujs,这些功能包括

  • 让超链接可以用 :method 参数支援非 GET 方法
  • 用超链接、按钮和表单可以用 remote: true 支援 Ajax
  • 超链接、按钮和表单可以用 data-confirm 参数可以弹出确认对话框
  • 送出按钮可以用 data-disable-with 参数在送出表单时暂时关闭按钮避免重复发送

什么是 Unobtrusive 呢?用个例子來说吧,以下代码会将超链接改成用表单 DELETE 送出,并且用一个提示弹窗来作确认:

1
link_to 'Remove', event_path(1), :method => :delete, :data => { :confirm => "Sure?" }

在Rails 3以前的版本,会输出:

1
<a onclick="if (confirm('Sure?')) { var f = document.createElement('form'); f.style.display = 'none'; this.parentNode.appendChild(f); f.method = 'POST'; f.action = this.href;var m = document.createElement('input'); m.setAttribute('type', 'hidden'); m.setAttribute('name', '_method'); m.setAttribute('value', 'delete'); f.appendChild(m);f.submit(); };return false;" href="/events/1">Remove</a>

在 Rails 3 之后,会输出:

1
<a rel="nofollow" data-confirm="Sure?" data-method="delete" class="delete" href="/events/1">Remove</a>

Unobtrusive 也就是将 JavaScript 程式与HTML完全分开,除了可以让HTML代码干净之外,也可以支援更换不同的 JavaScript Library,例如把 Rails 內建的 jQuery 換成 Protytype.js 或 angular.js 等等。

在 Layout 中有輸出一段 <%= csrf_meta_tag %> 的作用就是搭配给 UJS 使用的,让 JavaScript 可以拿到 CSRF 安全验证码。

j() 是 escape_javascript() 的缩写

Ajax 的三种使用方式

Ajax 是 Asynchronous JavaScript and XML 的缩写,是一种不需要重新整理页面,通过 JavaScript 来与服务器交换资料、更新网页內容的技术。目的在于改善使用者的操作界面,提升流畅度。它主要是通过浏览器提供的 XMLHttpRequestObject 来达成,不过因为要支援跨浏览器,大多数人們会选择使用 JavaScript Library 来处理 Ajax,例如最流行的 JQuery。

总体来说,依照 Ajax 使用的格式分类,有三种方式:

向服务器请求 HTML 片段,然后客户端浏览器上的 JavaScript 再替换掉页面上的元素
向服务器请求 JavaScript 程式脚本,然后客户端浏览器执行它
向服务器请求 JSON 或 XML 资料格式,然后客户端浏览器的 JavaScript 解析后再动作。

具体三种方式请参考:Ajax 應用程式 很详细。

其他实用的方法

pluralize 方法可以帮我们将名词字串转为复数的名词:

1
2
3
"table".pluralize # => "tables"
"ruby".pluralize # => "rubies"
"equipment".pluralize # => "equipment"

而 singularize 方法则是可以帮我们转为单数:

1
2
3
"tables".singularize # => "table"
"rubies".singularize # => "ruby"
"equipment".singularize # => "equipment"

camelize 可以帮我们将字串转为驼峰式的字串:

1
2
"product".camelize # => "Product"
"admin_user".camelize # => "AdminUser"

在 Rails 中也会将路径中 ”/” 符号转为 Class 及 Module 中的命名空间符号::

1
"backoffice/session".camelize # => "Backoffice::Session"

而 underscore 则是将原先驼峰式的字串转为路径式的字串:

1
2
3
"Product".underscore # => "product"
"AdminUser".underscore # => "admin_user"
"Backoffice::Session".underscore # => "backoffice/session"

titleize 方法可以将字串标题化,将单字的开头皆转为大写:

1
2
"alice in wonderland".titleize # => "Alice In Wonderland"
"fermat's enigma".titleize # => "Fermat's Enigma"

dasherize 可以将字串中的底线转为横线:

1
2
"name".dasherize # => "name"
"contact_data".dasherize # => "contact-data"

demodulize 可以将整串的 namespace 去除仅留下最后的 Class name 或是 Module name :

1
2
"Backoffice::UsersController".demodulize # => "UsersController"
"Admin::Hotel::ReservationUtils".demodulize # => "ReservationUtils"

deconstantize 则是相反的作用,将上层的部分全部找出来:

1
2
"Backoffice::UsersController".deconstantize # => "Backoffice"
"Admin::Hotel::ReservationUtils".deconstantize # => "Admin::Hotel"

必须注意的是这是处理字串,因此若直接仅给予 Class name 或是 Module name 是无法找出上层参照的

1
"Product".deconstantize # => ""

parameterize 可以将字串转为适合 url 的方式:

1
2
"John Smith".parameterize # => "john-smith"
"Kurt Gödel".parameterize # => "kurt-godel"

tableize 除了会将单数名词转为复数之外,还会将驼峰式的名词改为底线:

1
"InvoiceLine".tableize # => "invoice_lines"

tableize 的作用其实在于帮助你找出 Model 的资料表名称

classify 则是 tableize 的相反,能够帮你从资料表的名称转为 Model :

1
2
3
"people".classify # => "Person"
"invoices".classify # => "Invoice"
"invoice_lines".classify # => "InvoiceLine"

humanize 可以帮你将Model的属性转为较容易阅读的形式:

1
2
3
"name".humanize # => "Name"
"author_id".humanize # => "Author"
"comments_count".humanize # => "Comments count"

扩充 Enumerable

index_by
index_by 可以帮我们将集合元素以指定的栏位做为键值整理成 Hash :

1
2
3
invoices.index_by(&:number)
# => {'2009-032' => <Invoice ...>, '2009-008' => <Invoice ...>, ...}
键值通常必须是唯一的,若不是唯一的话将会以最后出现的元素做为判断值。

many?
many? 是可个好用的方法可以帮助我们快速的判断集合的数量是否大于1:

1
2
3
<% if pages.many? %>
<%= pagination_links %>
<% end %>

如果对 many? 传入区块运算时,many? 仅会回传运算结果是true的结果:

1
@see_more = videos.many? {|video| video.category == params[:category]}

还有些实用的小方法,抄过来太多了,请查看 ActiveSupport - 工具函式库

Rails 曾经迷惑的小知识一

发表于 2017-11-29 |

以下都是参考自:Ruby on Rails 实战圣经,里面有很多好用的小知识,也是曾经走过的坑,一点点知道的,这里面给整理的很好。已经一字不差的读到 Part 2 第 10 个了,接下来继续。因为都是地铁上看的,所以,就今天摘了一些我曾经迷惑过的小知识下来。

  1. <%- -%> 有什么作用?
1
2
3
4
5
<% @people.each do |person| %>
<% if person.name.present? %>
<p><%= person.name %></p>
<% end %>
<% end %>

上述的 <% %> 标签虽然不会输出 HTML 內容,但是还是在 HTML 原始码中换行了,为了避免输出時多余的換行,可以改用 <%- -%>。不过实际上并沒有很多人在乎就是了,毕竟这不影响用户的页面。

  1. 设定 layout
1
2
3
4
5
6
7
8
9
# Controller 设定 layout
layout "special", only: :index
layout "special", except: [:show, :edit, :new]
# Action 中设定 layout
def show
@event = Event.find(params[:id])
render layout: "foobar"
end
  1. Collection

如果是列表集合,像是 tr 或 li 這类会一直重复的 Template 元素,我们可以使用collection 参数來处理,例如像以下的程式:

1
2
3
4
5
<ul>
<% @people.each do |person| %>
<%= render :partial => "person", :locals => { :person => person } %>
<% end %>
<ul>

我們可以改写成使用 collection 参数來支援列表集合:

1
2
3
<ul>
<%= render :partial => "person", :collection => @people, :as => :person %>
<ul>

在 _person.html.erb 這個 partial 中,会有有一个额外的索引变量 person_counter 记录编号。

使用 collection 的好处不只是少打字而已,还有执行效能上的大大改善,Rails 內部会针对这种形式做执行效率最佳化。

  1. Helper
    因为 Helper 预设只能在 Template 中使用,如果想在 rails console 中呼叫,必须加上 helper,例如 helper.link_to。另外,虽然机会不多,如果真的要在Rails Controller或Model程式中呼叫Helper,则可以加上ApplicationController.helpers前置词。

Helper是全域的,定义在哪一个档案中没有关系,档案名称也不需要与Controller名称对应。

  1. 静态档案辅助方法
    使用 Rails 内建的静态档案(Assets)辅助方法有几个好处:

Rails 会合并 Stylesheet 和 JavasSript 档案,可以加速浏览器的下载。
Rails 会编译 Sass 和 CoffeeScript 等透过 Assets template engine 产生的 Stylesheet 和 JavasSript
Rails 会在静态档案网址中加上时间序号,如果内容有修改则会重新产生。这样的好处是强迫用户的浏览器一定会下载到最新的版本,而不会有浏览器快取到旧版本的问题。
变更 Assets host 主机位址时,可以一次搞定,例如上 CDN 时。透过 Helpers,Rails 可以帮所有的 Assets 加上静态档案伺服器网址。
几个常用的方法:

1
2
3
4
5
6
7
javascript_include_tag
stylesheet_link_tag
auto_discovery_link_tag
favicon_link_tag
image_tag
video_tag
audio_tag
  1. 格式化辅助方法
    simple_format
    将\n换行字元换成HTML的<br>标签。在表单输入的<textarea></textarea>中,换行其实是\n控制字元,因此输出在网页上时,\n代表的是在HTML原始码中换行,因此我们经常需要将\n再换成<br>标签,这样浏览器看到的画面才有换行的呈现。
1
<%= simple_format("foo\nbar") %> # 輸出 "<p>foo\n<br />bar</p>"

truncate 截取前几个字符

1
2
3
4
<%= truncate("Once upon a time in a world far far away") %>
# 輸出 "Once upon a time in a world..."
<%= truncate("Once upon a time in a world far far away", length: 17) %>
# 輸出 "Once upon a ti..."

strip_tags
移除HTML标签

strip_links
移除HTML超连结标签

distance_of_time_in_words
输出很酷的时间距离,例如

1
2
3
4
5
distance_of_time_in_words(Time.now, Time.now + 60.minutes)
=> "about 1 hour"
distance_of_time_in_words_to_now
distance_of_time_in_words_to_now(Time.now - 1.second)
=> "less than a minute"

time_tag
输出HTML5时间标签

1
2
time_tag(Time.now)
=> "<time datetime=\"2014-11-03T23:55:11+08:00\">November 03, 2014 23:55</time>"

number_with_delimiter

1
2
3
4
5
number_with_delimiter(1234567)
=> "1,234,567"
number_with_precision
number_with_precision(123.4567, precision: 2)
=> "123.46"
  1. URL辅助方法
    link_to 文字超连结
    除了学过的 <%= link_to '超連結文字', xxx_path %> 用法之外,如果超连结文字很多甚至有图片,可以用 block 的方式改写,例如:
1
2
3
<%= link_to user_path(user) do %>
<%= image_tag user.avatar.url %> <%= user.display_name %>
<% end %>

mail_to E-mail
button_to 按钮连结,这个预设会改用POST出去(实际是个只有按钮的表单)。因此如果超连结有用 method: :post 等非GET方法时,建议可以考虑改用 button_to而不是 link_to,这样在JavaScript失效的情况下仍然可以作用,满足网页无障碍的标准。
current_page?(url) 是否目前是url这个页面,通常是在 layout 上搭配 tab 样式做 active 效果

  1. 表单辅助方法
    select
    使用 select 有一个坑:如果你要加 class 的话,必须这样写 f.select :xxx, {}, :class => "your-class-name",多出来的{}是因为这个select API的最后两个参数都是Hash,必须多包一个{}才能让 :class 挤到最后的参数去。

搭配model用的f.check_box :column_name和check_box_tag :input_name有微妙的差异,前者会多产生一个隐藏的hidden_field :column_name, “0”来表示没有勾选的状态,后者则不会。这是因为如果你没有勾选的话,浏览器就不会送出check_box的资料,因此Rails用了一个隐藏栏位来处理反勾选。

  1. 如何处理 Model 中不存在的属性
    使用 form_for 时,其中的栏位必须是 Model 有的属性,那如果资料库没有这个栏位呢?这时候你依需要在 Model 程式中加上存取方法,例如:
1
2
3
4
5
6
7
8
9
10
11
12
class Event < ApplicationRecord
#...
def custom_field
# 根據其他屬性的值或條件,來決定這個欄位的值
end
def custom_field=(value)
# 根據value,來調整其他屬性的值
end
end

这样就可以在 form_for 里使用 custom_field 了。

1
2
3
4
<%= form_for @event do |f| %>
<%= f.text_field :custom_field %>
<%= f.submit %>
<% end %>

记得把 :custom_field 也加到 Strong Parameters 清单里,这样按下送出后,就可以跟着 @event 本来的栏位一起处理了。

一冰箱水果

发表于 2017-11-15 |

小时候,
妈妈几乎是我的全部,
她给我梳两个高高的辫子,
她给我缝带着小花的毽子,
她给我买参加大礼堂表演的裙子,
她高兴的把我抱起并亲吻我的脸颊,
她在别人面前夸我懂事并抚摸我的头发,
她深夜陪我一起做作业看我写一笔一画,
她安排我周末打扫屋子和院子,
她累了躺在床上起不来,教我第一次做饭,
她端着我做的饭出去串门,一个劲儿的夸,
可是那次我只放了很多油,没有放盐,
她曾经是我无话不说的好朋友,
她,篇篇出现在我小时候的作文里,不管什么主题;

后来,我们隔了万水千山,
我们曾书信互诉思念,
看着她用产品单的空白处给我写的信,
我哭了一遍又一遍,
那些日子,
像没有阳光一样黑暗,
我在她回来看我的一个晚上,
靠着县城旅馆外面的栏杆,
看着外面霓虹的路灯和来往的车辆,
我想通了,
妈妈不是我的全部,
我也不是妈妈的全部;

再后来,我长大了,
我不再日日思念她,
只在心情变幻的时候想起她,
我想她说的话,
我想她的一生,
我想她想的忧虑,
我想她想的责任,
我想改变我们的命运,
我想的越来越多,
我把自己想的头痛,
居然是她过来宽慰我了;

我思索着,
追寻着,
我曾经许诺,
要让她拥有一冰箱水果,
为了我们的生活,
我走着,
也感恩着,
感谢她,
感谢帮助我的人,
也感谢灵魂里对我说话的另一个我。

code block

发表于 2017-11-15 |
  • code block ⼀种匿名⽅法
1
2
3
4
5
6
{ puts "Hello" } # 这是一個 block
do
puts "Blah" # 这也是一個 block
puts "B
end
  • 內部迭代器(iterator)
1
2
3
4
5
6
7
8
9
# 处理数组 people
people = ["David", "John", "Mary"]
people.each do |person|
puts person
end
# 反复五次
5.times { puts "Ruby rocks!" }
# 从一数到九
1.upto(9) { |x| puts x }
  • 其他迭代⽅式
1
2
3
4
5
6
7
8
9
# 迭代并造出另一个数组
a = [ "a", "b", "c", "d" ]
b = a.map {|x| x + "!" }
puts b.inspect
# 结果是 ["a!", "b!", "c!", "d!"]
# 找出符合条件的值
b = [1,2,3].find_all{ |x| x % 2 == 0 }
b.inspect
# 结果是 [2]
  • 当作判断条件
1
2
3
4
5
6
7
# 迭代并根据条件刪除
a = [ "a", "b", "c" ]
a.delete_if {|x| x >= "b" }
# 结果是 ["a"]
# 条件排序
[2,1,3].sort! { |a, b| b <=> a }
# 结果是 [3, 2, 1]
  • functional programming
1
2
3
4
5
6
7
# 计算总和
(5..10).reduce {|sum, n| sum + n }
# 找出最长字串find the longest word
longest = ["cat", "sheep", "bear"].reduce do |memo,
word|
( memo.length > word.length )? memo : word
end
  • 仅执⾏⼀次呼叫 pre- post- processing
1
2
3
4
5
6
7
8
file = File.new("testfile", "r")
# ...处理文件
file.close
# 但 Ruby 习惯⽤以下写法
File.open("testfile", "r") do |file|
# ...处理文件
end
# 文件自动关闭
  • Yield 在方法中使用 yield 可以执行 Code block 参数
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# 定义方法
def call_block
puts "Start"
yield
yield
puts "End"
end
call_block { puts "Blocks are cool!" }
# 输出
# "Start"
# "Blocks are cool!"
# "Blocks are cool!"
# "End"
带有参数的Code block
def call_block
yield(1)
yield(2)
yield(3)
end
call_block { |i|
puts "#{i}: Blocks are cool!"
}
# 輸出
# "1: Blocks are cool!"
# "2: Blocks are cool!"
# "3: Blocks are cool!"
  • Proc object 可以将Code block明确转成一个变数:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
def call_block(&block)
block.call(1)
block.call(2)
block.call(3)
end
call_block { |i| puts "#{i}: Blocks are cool!" }
# 輸出
# "1: Blocks are cool!"
# "2: Blocks are cool!"
# "3: Blocks are cool!"
# 或是先宣告出 proc object (有三種寫法,大同小異)
proc_1 = Proc.new { |i| puts "#{i}: Blocks are cool!" }
proc_2 = lambda { |i| puts "#{i}: Blocks are cool!" }
proc_3 = -> (i) { puts "#{i}: Blocks are cool!" }
call_block(&proc_1)
call_block(&proc_2)
call_block(&proc_3)
# 分別輸出
# "1: Blocks are cool!"
# "2: Blocks are cool!"
# "3: Blocks are cool!"
12…9

陈云莉 m18301662790@gmail.com

记录一些技术点,留下一些生活感悟

82 日志
25 标签
© 2017 陈云莉 m18301662790@gmail.com
由 Hexo 强力驱动
|
主题 — NexT.Gemini v5.1.3