43岁林心如气质变了,一身白西装裙优雅干练,配齐肩短发好减龄

Python014

43岁林心如气质变了,一身白西装裙优雅干练,配齐肩短发好减龄,第1张

导读:43岁林心如气质变了,一身白色西装裙优雅干练,配齐肩短发好减龄

各位点开这篇文章的朋友们,想必都是很高的颜值吧,我们真的是很有缘哦,我每天都会给大家带来不一样的 时尚 资讯,如果对我的文章或者其他的什么,有什么一些意见的话欢迎在下方积极评论哦,我每条都会认真看的。那么本期的内容是:43岁林心如气质变了,一身白色西装裙优雅干练,配齐肩短发好减龄!那么我们就来看看吧!

谈到 娱乐 行业的冰河世纪女神,现年43岁的辣妈Ruby Ruby也是其中之一。我们对林心如的印象仍然是紫薇的形象,温柔大方,多才多艺,端庄端庄和温柔...今天我们来看一下,看上去却与众不同。短发和西服的“紫薇”是什么感觉?

林心如参加某项代言活动时穿着白色西服裙。气质型女性是参加活动的“完美”选择之一,干练而 时尚 ,精致,优雅,却不失女性魅力。

短发略带卷曲,她的智力气质清晰生动。它减少了很多年龄,再加上头发的颜色,部分掉落的肩部头发,再加上这种妆容,弯曲的眼睛,眉毛面部特征的三维轮廓,粉红色的唇膏,使人感觉更加少女,笑时有酒窝,真的很美

衣服的腰部也有一条黑带。黑白的交织是经典的色彩匹配,并且色彩层次更加鲜明。同时,腰部的腰线以正确的方式分割了身体的比例,看起来像是43岁的辣妈。

这种外观不是一条搭配夹克的简单裤子,而是一条西装裙,裙摆下方有一层薄薄的纱布。西装的技巧与纱裙的美丽相结合。当两者搭配在一起时,便具有独特的和谐之美。林心如在这套西装中的选择为她的独特气质增添了许多鲜艳的色彩。

这组造型赋予了Ruby Lin高贵的美感:深绿色的连衣裙和单肩设计使脖子和肩膀的完美曲线脱颖而出。优美而优雅。带有“细心”蝴蝶结的袖子打破了整体形状的沉闷感。真丝裙摆显示出整体曲线,非常生动,低矮的马尾辫和橙色的妆容,让人感到 时尚 和高级。

在春节联欢晚会期间,林心如的外观与参加活动的帅气西装形成鲜明对比。她穿着粉红色的纱布裙和低龄的球形头。她像一个女孩一样甜美,根本不像43岁。她的裙子是不规则的剪裁方法。顶部是V领,凸显了脖子的美丽。粉色纱布裙搭配红色点缀,呼应红色腰带, 时尚 感和节日气氛,再配以一句话的一双高跟鞋,真的很简单又百搭,非常适合这种温柔的穿着。

林心如(Ruby Lin)的气质温和,这次尝试穿上帅气而结实的骑马服装,马尾辫高挑细腻,更干净利落,紧身打底裤加上黑色小西服,半高领白色内穿总体来说,帅气的感觉与甜美的女性气质交织在一起。林心如的“致命”和迷人的酒窝使她的气质更易于识别和吸引。

林心如在拍摄某本杂志时身穿蓝白印花抹胸裙摆,完美衬托出整体的温和气质,再加上羊毛复古卷发,整个人更加可爱美丽,高腰裙摆人物的比例可以在视觉上营造出挺拔的感觉,而脖子上的项链则充满了“空虚”的感觉,使整体更具吸引力。

少女粉红色毛衣配牛仔裤,简洁清新的风格。粉色毛衣腰间的真丝围巾带为Ruby Lin增添了 时尚 感。粉色毛衣充满青春气息。搭配牛仔裤,既 时尚 又休闲。舒适,简单,休闲。休闲风格,甜美风格,帅气风格,高贵风格……林心如可以自由控制。岁月的痕迹似乎没有反映在她的身上。分娩后她仍然充满少女气,几分钟之内就可以变得美丽。

请输1、肯德基的创始人?怎么称他上校?为什么肯德基的“基”不是这个“鸡”字呢? 哈兰·山德士先生,1890年生于美国肯德基州。

十几岁时远离家乡自立谋生,到了1930年他才在餐饮业上找到事业的归宿。

上校是由当时的肯德基州长RubyLaffon于1935年授封他为肯德基上校,以表彰他对肯德基州餐饮的贡献!这就是为什么肯德基的“基”不是这个“鸡”的原因! 2、为什么肯德基的炸鸡这么好吃有什么特殊配方? 这还是一个比较有趣的故事,山德士先生潜心研究炸鸡的方法最后终于成功的发明了由十一种草药和香料组成的,通过特有的烹调技术合成的秘方,金黄色的壳,湿润而美味的鸡肉就这样烹制成了。

(小记者们都听得要流口水了!)山德士上校依靠调料的秘方创造出非凡的炸鸡事业,但是他只把秘方告诉了两个人。

60年代中期肯德基发展的很快,秘方成为当时探秘者们永不枯竭的话题!直到今天炸鸡秘方也是一个不解之谜!(小朋友们要努力学习早日破解秘方之谜!哈哈!) 3、什么是肯德基的冠军计划和“神秘顾客”计划?哈哈!你们知道的还真不少啊!这是我们向每个消费者的承诺:即美观整洁的环境、真诚友善的接待、准确无误的供餐、优良维护的设施、高质稳定的产品、快速迅捷的服务。

简单说:美、真、准、优、高、快的冠军计划服务顾客,使顾客每一次光临肯德基餐厅都有“yum”(愉悦)的感觉!“神秘顾客”计划也是冠军计划检测的一项,神秘顾客也是一般普通的顾客,目的是从顾客的立场客观地评估餐厅的表现,并且保密身份,如果被餐厅认出,就要退出冠军检测计划,至少12个月后才能重新参加,你们也可以做“神秘顾客”对餐厅的问题可以直接打电话告诉我啊!(小记者们都十分兴奋!都要积极报名当“神秘顾客”呢!) 肯德基快餐已成为全球通行的餐饮。

从中国的长城,直至巴黎繁华的闹市区、风景如画的索非亚市中心以及阳光明媚的波多黎各,都可见到以肯德基为标志的快餐厅,其经营的肯德基也受到了各国消费者的喜爱。

你可知道,肯德基的诞生充满了有趣的故事? 肯德基的创始人哈兰·山德士,1890年出生于美国肯德基州。

十几岁时远离家乡自立谋生, 先后当过农夫、售票员、军人。

1930 年,他40岁时才在餐饮业上找到事业的归宿。

那是1930年,40多岁的山德士先生在肯德基州开了个加油站。

他见来加油的顾客往往感到腹空饥饿,于是就热心地增加服务———兼卖炸鸡。

由于没有餐厅,只好让顾客在加油站的小厨房里进餐。

不久,许多人专程为品尝他的炸鸡而来,这是他始料不及的。

后来,山德士索性系上围裙,自己亲自烧炸,并投资扩建了可容纳147人就餐的大餐厅。

以后的9年里,他边经营边研究炸鸡的特殊配料———含11种药草和香料的配方。

用这种配料炸成的鸡的表皮形成一层薄薄的、几乎未烘透的壳,鸡肉湿润而鲜美,这便是由肯德基原创的“原味鸡”。

当时的肯德基州长Ruby Laffon于1935年授封山德士为肯德基上校,以表彰他对肯德基州餐饮业的贡献。

原味鸡,以其独特的口味深受顾客的欢迎。

由山德士上校精心研发出的含11种香料的炸鸡配方沿袭至今。

山德士上校的脸孔也随着肯德基为全球所熟悉。

这个满头白发、蓄着白胡子、一身白西装的形象,已成为继林肯总统之后最容易辨识的蓄胡子美国人。

世界上每天有1000多万顾客在1.3万多家世界各地的肯德基餐厅品尝着由山德士上校近半世纪前开创的肯德基原味鸡。

顾客还可在世界各地的肯德基餐厅内品尝到400多种其他食品,如中国的老北京鸡肉卷、科威特的鸡肉饼和日本的硅鱼三明治等。

为满足消费者的需要,肯德基还不断尝试研发各种风味的食品。

在中国,消费者可品尝到芙蓉鲜蔬汤、四季鲜蔬、老北京鸡肉卷、烤翅等为中国消费者度身定制的美食。

肯德基在本地化上的努力得到了消费者的认可和支持。

肯德基所属世界上最大的餐厅集团系统——百胜全球餐饮集团,1997年从百事公司分拆上市,集团拥有肯德基、必胜客、泰贝尔在内的全球100多个国家和地区的30000家连锁餐厅,年营业额达250亿美元,居世界餐饮界之首,名列世界500强。

总部设在肯德基州的路易斯维尔市,中国总部在上海。

肯德基是世界上最大的炸鸡快餐连锁企业,在世界各地拥有11000多家餐厅,遍布80多个国家 一、起源  肯德基的起源可以追溯到哈兰德-森德斯,此人于1890年生于印第安纳州的享利维尔。

森德斯读到六年级就辍学在家,开始做各种各样的零杂工,后来,他对饮食业发生了浓厚的兴趣。

他开办了自己的加油站,并在旁边开了家小饭馆。

20世纪30年代,森德斯发明了一个烹饪鸡肉的秘方:先在鸡肉上涂一层含有11种药草和香料的混合物,然后高压煎炸。

这种“南方炸鸡”在加油站深受大家喜爱,但是后来原经营店铺的位置因修建高速公路而关闭,于是在1950年森德斯决定通过特许他人使用这种新奇秘方来赢利。

到1964年为止,他已经售出了700个特许权,这就是世界上餐饮加盟特许经营的开始。

1964年,74岁的哈兰德-森德斯最终同意以200万美元附带一项终身薪金的价格出售了自己的企业。

企业的买主是一个29岁的肯塔基州律师约翰布朗,以及他的资金支持者,60岁的杰克马歇尔,他们保证让森德斯在新的合资企业中能够在产品销售及质量方面发挥积极的作用。

伴随着富于进取的新经营管理人员的加盟,在美国快餐业的迅速发展的大环境下,肯德基炸鸡以惊人的速度发展起来。

在此后的5年里,销售额每年平均增长96%,1976年达到2亿美元。

同年又新开了近1000分店,其中绝大多数是特许经营。

 由于主要依赖出售特许权,公司因而不需投入迅速扩张所必须的高昂成本。

同时也保证了股东收益的最大化。

不论是对个别店铺还是对一个被特许区域,规模对于赢利水平都至关重要。

相应地,赢利性也保证了肯德基公司对未来潜在的被特许人的吸引力。

在1971年,布朗和马歇尔以2.75亿美元的价格把肯德基公司转售给了休伯莱恩(Heublein)公司。

休伯莱恩公司的总部设在大康涅狄格州的法明顿,经营各种包装食品,主要销售“斯密莫夫”牌伏特加、加拿大黑天鹅绒威士忌酒、灰色宠蓬芥末和“埃尔”牛排酱。

 二、国内外的挑战肯德基公司的国际化在休伯莱恩公司收购其所有权前不久刚刚开展。

作为70年代美国文化输出的一部分,肯德基公司于1970年在日本的大阪设立了第一家分店。

到1973年为止,肯德基公司在日本建立了64家分店,主要集中在东京地区。

它还迅速进军香港,到1973年已在那里开设了15家分店。

肯德基还把市场扩大到澳大利亚、英国和南非等国家。

在收购肯德基公司以后不久,休伯莱恩公司就把肯德基公司的国际部人员合并进自己在大康涅州的更为庞大的国际集团中。

尽管休伯莱恩公司努力实施严格的运作控制肯德基,然而,对于将美国式的店铺设计、菜单和销售方式运用到文化差异极大的东道国的做法各国经理人员深为困惑。

对公司控制的 *** 情绪潜增暗长,许多海外分店铺开始设计自己的菜单。

譬如日本的炸鱼和熏鸡,南非的汉堡包和澳大利亚的烤鸡。

在承受巨大的利润损失后,1975年肯德基公司从香港市场全面撤退。

在日本的分支机构在70年代的大部分时间里也处于亏损状态。

 各国经理人员和公司管理者关系紧张,70年代肯德基公司在美国也面临着更为严峻的市场环境。

随着乔奇炸鸡特许连锁店在全国范围内出现及其他几个强有力的地方竞争者的加入,快餐业的竞争越来越激烈。

麦当劳汉堡包日渐增多的市场份额也冲击着肯德基。

 休伯莱恩收购肯德基公司以后,由于被特许人中产生的混乱,许多被布朗和马歇尔雇佣的高级经理有的被解雇,有的被迫离职,这在特许经营商中造成很大混乱。

到1976年,销售额每年减少8%,利润每年减少26%。

更糟的是,快速的膨胀式发展带来的是:质量的不稳定、卫生条件差、并迅速产生了一大批令人厌恶的被特许人。

而这些人名下的销售额占肯德基销售总额的80%。

 三、经营转轨  随着国内外经营的迅速恶化,休伯莱恩公司于1975年秋天任命迈克尔麦尔斯来拯救这个连锁企业。

麦尔斯刚开始参与领导休伯莱恩公司族下的国际集团,该集团现由肯德基公司控股。

麦尔斯负责肯德基与利奥-巴耐特代理商的广告业务10年后,来到休伯莱恩公司。

在休伯莱恩公司,他已升为百货商品部副总管。

虽然他几乎没有国际经营经验,但他在战略计划方面声名卓著,他在1975年末的主要任务是通过提高公司的支持率和加强控制来提高国际经营的稳定性。

他最初所作的决策之一是将肯德基国际部迁回路易斯维尔,在这儿它可以在公司内部拥有一定的自 *** ,不到18个月,麦尔斯被要求在18个月内完成包括美国本土在内的全球范围内的经营管理转轨。

麦尔斯战略的基本要点是在菜单选择和质量、服务及清洁卫生(QSC)的承诺上回到以前的基本立场上,以保持公司初期的良好声望。

这个回归战略预拟对一系列新员工进行训练,对公司所有店铺和特许分店进行随机检查,并做一个“我们的鸡块棒极了”的新广告。

这一战略的目的是让消费者注意到一个营养更丰富,更以顾客为中心的肯德基公司,它所经营的产品——鸡块——其品质是其他任何竞争者都不能比拟的。

 转轨战略的结果是发生了戏剧性的变化。

到1982年,肯德基公司已成为休伯莱恩公司发展最快的部门,其实际增长率为2.3%,从1978年到1982年,公司自营店的销售额平均增加了73%。

特许分店的销售额几乎平均增长了45%。

增长主要来自于肯德基的国际经营,公司海外分店的数量甚至超过了麦当劳公司的海外分店数。

到1982年,肯德基在日本有近400家分店,在新加坡有23个特许分店。

 四、R.J.雷罗斯公司的收购 尽管肯德基有了惊人的发展,但其进一步扩张却因休伯莱恩公司严格的资金扩张而受阻。

肯德基获得的大部分利润被用来恢复休伯莱恩公司的烈性酒生产上。

那是他们自己的产品,而且正面临着销售不畅和竞争加剧的威胁。

1982年,肯德基每年只有5000万美元的扩张资金,而麦当劳公司每年却投入4亿美元用于扩大再生产。

肯德基公司自己所有的分店与其特许分店比率在这一行业中也是最低的。

许多特许分店在设备更新方面动作缓慢,而且投资的主要部分得用来保证整个肯德基网络的完整性,这一点是可以理解的。

 在1982年夏末,温斯顿-斯尔姆公司的R.J.雷罗斯公司以14亿美元收购了休伯莱恩公司。

休伯莱恩公司的领导者支持这次收购,因为他们害怕公司被接管或分割。

雷罗斯公司早就开始在消费品工业领域内寻求扩张机遇,在这方面它的市场技能和巨额的资金流转可以发挥作用。

 收购后不久,麦克-麦尔斯离开了休伯莱恩公司,成为达特和卡夫特公司(Dart andKraft)的总裁。

他的继任者是肯德基公司的业务执行主管理查德-梅耶。

梅耶实施在转轨战略时曾和麦尔斯并肩战斗。

他在通用食品公司工作了10年之久后被提升为果冻食品部的主管,他把这次收购为“奇迹”。

 五、国际扩张 雷罗斯公司巨额资金的支持促进了肯德基公司的进一步发展。

雷罗斯公司认为有健康意识的顾客将会更多地消费鸡肉类食品,于是她制订了一个雄心勃勃的全球扩张计划,并决定在5年内注入10亿美元的资金。

扩张计划的重点在美国本土之外,因为那里的市场很大程度上尚未开发。

 与国内经营一样,特许经营对肯德基公司的国际扩张中起了重要作用。

在许多政治风险较大和文化分隔较严重的地区,特许经营成为许多市场的首选经营方式。

特许经营的另一个好处是肯德基公司可以保证在投资很少的情况下确保得到稳定的收入,它会对现有的经营状况产生杠杆作用。

在那些能轻易避免特许商偏离肯德基公司经营规程的行为的地方,这是一个非常具有吸引力的选择。

 依赖特许商的缺点它是允许损害系统的整体性。

地方特许经营商一般控制着公司的证券,而肯德基公司自营店的收入只占销售收入的一小部分,特许经营商为利益最大化的欲望所驱动,经常会找捷径或进行不利经营,虽然这种策略一般不会危及短期的赢利,但从长远看则经常导致经营的恶化。

在国际经营难以控制时,这个问题的严重性就会加剧。

 六、肯德基在中国 1987年11月12日由中外合资企业——北京肯德基有限公司在北京前门设立了第一家肯德基餐厅,由此开始了肯德基在中国的业务扩张。

1992年,餐厅数量达到11家,是当时中国经营快餐连锁餐厅中数量最多的公司,1995年发展到50家,2000年11月28日突破400家,截止到2001年末,肯德基已在中国设立了30家公司,管理和经营全国近130个城市里500多家餐厅。

拥有员工30000多名,员工100%本土化,2000年实现营业收入40亿元。

从第一家肯德基餐厅开始,肯德基100%采用国内鸡原料,目前在国内有20多家鸡类供应商,包括其它原料在内,肯德基85%的原料由国内供应,2000年6月在国内有241家原料供应商,实行区域性集中采购,2000年全年订购鸡肉、蔬菜、面包、包装箱、设备、建筑材料总计8亿元。

由于中国产的土豆无法达到品质要求,肯德基所用土豆全部在美国进口,仅土豆泥一项全年销售额为3亿元。

肯德基在中国的餐厅全部为肯德基合资或独资公司直接投资经营的方式,目前已经开始采用加盟连锁的方式,加盟以餐厅转让的方式进行,加盟者一次性支付转让费用800万元以上,获得一家营运绩效良好的肯德基餐厅(不包括房产租赁费用),加盟经营期开始时须支付加盟经营首期费36200美元(每年调整),持续费用为总销售额6%的加盟经营权使用费,每年销售额5%以上的广告费(可自己支出)。

目前只对国内非农业人口大于15万小于40万,人均消费大于6000元的地区开展特许加盟业务,并且这个地区设有正常经营的肯德基餐厅。

第一家特许经营餐厅在常州溧阳,溧阳泰丰餐饮有限公司于2001年末刚刚接手。

目前特许加盟业务仅采用一种方式——餐厅转让,加盟商可以购买一家或在同一地区购买二~三家餐厅,将来可在同一地区开设新的餐厅。

所有的加盟经营不享有区域性的专有权。

 另:分析与建议  1、加盟连锁是重要的发展手段,但加盟公司比例要适度,要形成核心公司业务优势,并形成区域性的业务主导作用。

 肯德基快速的特许加盟给企业发展带来了隐患,形成了1975年的经营危机,问题在于分支机构经营的统一性和质量保障,这一点是我们应该着重注意的。

2、市场的扩张需要投资和培育,尤其是陌生的市场。

肯德基在中国的发展基本以投资和控股的方式,这与中国当时对外资的限制有关,但更重要的是肯德基本身经营思路的变化。

在当时的情况下,肯德基在中国完全是陌生,市场开发需要培育的过程,直接采用特许加盟未必能够找到足够的加盟者,同时国内的生产经营条件难以保证质量,市场扩张风险较大。

3、集中采购既是质量保证,也是利润支持。

肯德基在国外的供货商均是指定的,并且很多是伴随肯德基的发展而发展起来的,肯德基造就了这些下游企业,同时也为自己的经营发展垫定了坚实的基础。

同时区域性的集中采购也大大降低成本。

4、资本运营是企业发展的必经之路。

在肯德基的发展史上,几易其主,要提升企业的竞争平台,跨进世界级企业的行列,必须引进更有实力和经验的运营商或强强联合,单纯靠自己经营积累来发展,是无法适应国际竞争的需要的。

Ruby on Rails 正在令整个 Web 开发领域受到震憾。让我们首先了解底层的技术:

Ruby 是一门免费的、简单的、直观的、可扩展的、可移植的、解释的脚本语言,用于快速而简单的面向对象编程。类似于 Perl,它支持 处理文本文件和执行系统管理任务的很多特性。

Rails 是用 Ruby 编写的一款完整的、开放源代码的 Web 框架,目的是使用更简单而且更少的代码编写实际使用的应用程序

作为一个完整的框架,这意味着 Rails 中的所有的层都是为协同工作而构造的,所以您不必自己再重复,可以完全只使用一门单一的语言。 在 Rails 中,所有内容(从模板到控制流再到业务逻辑)都是用 Ruby 编写的。Rails 支持基于配置文件和注释的反射(reflection)和运行时扩展。

本文详细介绍了 Rails 的组成部分,并介绍了它的工作原理。

Rails 介绍

关于 Rails,首先需要理解的是它的模型/视图/控制器(model/view/controller,MVC)架构。虽然这种技术不是 Rails 所特有的 —— 甚至不是 Web 应用程序所特有的(相对于其他程序),但是 Rails 具有非常清晰而专一的 MVC 思维方式。如果您并不使用 MVC 方法,那么 Rails 的用处将大为降低(与遵循其模式的情况相比)。

模型

Rails 应用程序的模型部分主要是它所使用的底层数据库。实际上,在很多情形中 Rails 应用程序正是以一种受管理的方式对关系型数据库管理 系统(RDBMS)中的数据执行操作的一个途径。

ActiveRecord 类是 Rails 的一个核心组成部分,它将关系型表映射为 Ruby 对象,使其成为控制器可以操作并能在视图 中显示的数据。Rails 应用程序特别倾向于使用广为应用的 MySQL 数据库,不过也有与很多其他 RDBMS 的绑定,比如 IBM? DB2?。

如果您愿意,您可以添加 Ruby 代码来在应用程序模型中执行额外的验证,加强数据关联,或者触发其他操作。应用程序的 app/models/ 目录中的 Ruby 文件能够调用 ActiveRecord 的多种验证方法。不过,您也可以将模型代码留作一个存根,而只是依赖保存数据 的 RDBMS 的约束。例如,我在这个示例中所开发的应用程序只包含这个骨架模型代码(至少在开始时是):

清单 1. 骨架模型 app/models/contact.rb

class Contact <ActiveRecord::Base

end

控制器

控制器以其抽象形式执行应用程序的逻辑。也就是说,应用程序的 app/controllers/ 目录中的 Ruby 脚本能把模型数据导入为变量,保存回去,或对其进行修改 和处理。不过,控制器不关心用户如何适当地显示或者输入数据。在通常的 MVC 模型中,这可以让用户能够以多种方式与同一控制器进行交互:本地 GUI, Web 界面,以及视力较弱的人使用的语音界面都可以与相同的控制器进行交互。

不过,Rails 不像那样非常通用;相反,它仅局限于在 Web 页中提供和收集数据。虽然如此,但是您可以修改那些 Web 页的布局 —— 颜色、字体、表格、 样式表单,等等 —— 与控制器代码无关。

视图

Rails 视图是我们编写 Ruby 代码的地方。Rails 包含有一门用于 .rhtml 的非常好的模板语言,它将纯粹的 HTML 与嵌入的 Ruby 代码组合起来。 Rails 应用程序界面的最表层外观通常是由 CSS 样式表单控制的。.rhtml 格式是一种增强的 HTML。实际上,一个简单的 HTML 文件本身也是一个 合法的 RHTML 模板,不过,不应该忽略 RHTML 为您提供的脚本控制。

RHTML 是真正的模板格式 —— 不仅是在 HTML 中嵌入代码的方式 —— 这是一种更为有效的方法。如果您熟悉 PHP,那么可以考虑 PHP 本身与 Smarty 模板之间的对照。也就是说,嵌入的脚本只是将代码与未被解释的 HTML 混合在一起;当需要向客户机输出某些内容时,代码部分 仍要负责执行 print 语句。

与之不同的是,模板引擎向 HTML 添加了一组定制的标签,让您能够将条件、循环以及其他逻辑作为增强的 HTML 标记的一部分来表示。

回页首

生成代码

Rails 所提供的工具主要是一组代码生成器。相对于那些强迫我使用严格的工作空间和 IDE 的开发环境,我更喜欢这种方法。 Rails 不会妨碍您,但是却会为您省去大部分手工编程的工作 —— 或者,通过提供“可自由获得的”初步(first-pass)支架(scaffolding), 至少帮助您轻松将需要手工编码的工作分为多个部分。

支架 概念是 Rails 中的核心概念。非常简单的应用程序可能完全不用编码,让 Rails 在运行时动态地生成客户机 HTML 页面。 第一遍生成代码时创建的只是粗略的支架;接下来您可以生成更详细的能够定制的控制器、视图和模型。不过在开始时不需要生成太多。

Rails 对其文件的组织是固定的而且非常普通的,不过这种组织相对严格。如果您试图强行使用其他文件和代码组织方式,那么您可能得 付出努力去修改 Rails 环境。再者说,我找不到不使用 Rails 所提供的组织方式的理由;在大部分情况下,它“fits your brain”(Ruby 的 支持者喜欢这样讲)。例如,如果您从头开始设计一个框架(至少如果您以“Ruby 方式”思考),那么这些目录名称及其组织可能与您的选择非常接近。

回页首

构建一个简单的应用程序

在 Ruby on Rails Web 站点上有一些教程,可以完整地引导您创建一个简单的 Rails 应用程序(见 参考资料)。 这里的示例程序与之类似,因为正确开始构建 Rails 应用程序的方式是确定的。由于此介绍的长度相对较短,所以我 极力 推荐 那些较长的教程中的一篇,以使得您能够打好更为全面的基础。

示例应用程序是一个基本的通讯录。它演示了创建应用程序的一般步骤:

生成模型(在此步骤中创建 MySQL 数据库和表)。

生成应用程序(包括生成基本代码和目录)。

启动 Rails(并配置数据库的访问)。

创建一些内容(包括生成支架模型和控制器,并告知控制器去使用那个支架)。

我们将详细研究每一个步骤。

生成 AddressBook 模型

对于任何应用程序,您需要做的第一件事情是为它创建一个存放数据的数据库。技术上这个步骤不必最先进行,不过需要在早期完成;应该在编写任何 应用程序代码(甚至是自动生成的代码)之前创建数据库,这应该是显然的。所以,让我们在 MySQL 数据库中创建一个数据库,并在此数据库中创建第一张表。 (阅读其他文档以了解如何安装运行 MySQL 或其他 RDBMS。)

我们假定 MySQL 已经安装并且可用。

清单 2. 创建 MySQL 数据库和表

[~/Sites]$ cat AddressBook.sql

CREATE DATABASE IF NOT EXISTS AddressBook

USE AddressBook

CREATE TABLE IF NOT EXISTS contacts (

id smallint(5) unsigned NOT NULL auto_increment,

name varchar(30) NOT NULL default '',

created_on timestamp(14) NOT NULL,

updated_on timestamp(14) NOT NULL,

PRIMARY KEY (id),

UNIQUE KEY name_key (name)

) TYPE=MyISAM COMMENT='List of Contacts'

[~/Sites]$ cat AddressBook.sql | mysql

在这第一张表中有些地方需要注意。最重要的是每一张表都必须拥有一个 id 列,列名称就是 id。Rails 使用 主键列 id 来完成各种记录保持和引用任务。域 created_on 和 updated_on 是不需要的,不过,如果您使用了它们,那么 Rails 会自动地“在后台”维护它们;在大部分情况下使用这些时间戳没有什么不好。所以,您还要添加的“真正” 数据就只是通讯录内容的名称。

另一个稍微古怪的方面是,Rails 为不同的内容使用单数和复数的名称。根据上下文,各种条目会被重命名为单数或复数形式。表的名称应该使用复数格式。 我没有使用不规则复数单词的经验;datum 和 data 等单词可能会令 Rails 出现问题。

生成 AddressBook 应用程序

既然已经拥有了一个能够交互的数据库,就可以创建 AddressBook 应用程序了。第一个步骤是简单地运行 rails 来生成基本目录和支架代码:

清单 3. 生成基本代码和目录

[~/Sites]$ rails AddressBook

create

create app/apis

create app/controllers

create app/helpers

create app/models

create app/views/layouts

create config/environments

create components

[...]

create public/images

create public/javascripts

create public/stylesheets

create script

[...]

create README

create script/generate

create script/server

[...]

我删减了运行 rails 的输出;所忽略了那些行只是提醒您已经创建的各种文件和目录。在您的系统上试运行它,浏览生成的所有文件。 我已经在代码中显示了一些最重要的文件和目录。

运行 Rails

创建了 AddressBook/ 目录和所需要的子目录后,您需要执行一次惟一的初始配置。首先,通过修改 YAML 配置文件来设置数据库,如下:

清单 4. 配置数据库访问

[~/Sites]$ cd AddressBook

[~/Sites/AddressBook]$ head -6 config/database.yml # after editing

development:

adapter: mysql

database: AddressBook

host: localhost

username: some_user

password: password_if_needed

最后,您需要提供数据。Rails 附带了它自己的单一功能的 Web 服务器,即 WEBrick,非常适用于我们的试验。您可能也会遵循 Ruby on Rails Web 站点上的说明来配置 Apache 或者其他服务器,以通过 FCGI(或者普通的 CGI,但是普通的 CGI 将会较慢)向 Rails 应用程序提供服务。

清单 5. 启动 WEBrick 服务器

[~/Sites/AddressBook]$ ruby script/server -d

=>Rails application started on http://0.0.0.0:3000

[2005-03-21 17:57:38] INFO WEBrick 1.3.1

[2005-03-21 17:57:38] INFO ruby 1.8.2 (2004-12-25) [powerpc-darwin7.8.0]

创建一些内容

要在 WEBrick 端口上看到一个欢迎页面,先前的步骤就足够了。例如,在我的本地系统中,现在可以访问 http://gnosis-powerbook.local:3000/。不过,为了操作定制数据库,需要 生成稍微多一些代码。可以使用脚本 generate 来完成此任务, 这个脚本创建在 AddressBook/ 应用程序目录中:

清单 6. 支架模型和控制器代码的生成

[~/Sites/AddressBook]$ ruby script/generate model contact

exists app/models/

exists test/unit/

exists test/fixtures/

create app/models/contact.rb

create test/unit/contact_test.rb

create test/fixtures/contacts.yml

[~/Sites/AddressBook]$ ruby script/generate controller contact

exists app/controllers/

exists app/helpers/

create app/views/contact

exists test/functional/

create app/controllers/contact_controller.rb

create test/functional/contact_controller_test.rb

create app/helpers/contact_helper.rb

注意,在相应的表名中,这里应该使用单数的 contact,而不是复数的 contacts。

现在需要编辑一个或多个生成的文件(只需稍加编辑)来让控制器去使用支架:

清单 7. 告知控制器去使用支架

[~/Sites/AddressBook]$ cat app/controllers/contact_controller.rb

class ContactController <ApplicationController

model :contact

scaffold :contact

end