新手问题 学习 Rails 的心态

hamxiaoz · 发布于 2013年2月28日 · 最后由 shlallen 回复于 2013年3月01日 · 1538 次阅读
96

本人rails新手一枚. 在看Ruby on Rails Guides. 发现很多东西我都是在依葫芦画瓢, 感觉底层rails做了很多东西. 比如controller里面, 没写几行代码, 怎么就把post给显示出来了.

def show
  @post = Post.find(params[:id])

  respond_to do |format|
    format.html # show.html.erb
    format.xml  { render :xml => @post }
  end
end

我是做C# C++桌面程序的,所以感觉Rails用起来有很大不同, 很多东西, 我都不知道去哪里找它背后的实现.

我在想, 是不是学rails甚至是用rails的时候就要抱着这样的心态: 把business的逻辑给表达出来就可以了, 其它的具体实现就靠rails来解决了.

Rails砖家老师么, 你们开始学习时是不是也有这样的疑惑?

共收到 12 条回复
2019

先学Ruby,再学Rails,再学Ruby,再学Rails。 我是这么学的...

1205

初学者不要太关注底层的逻辑,你不是已经显示出来了吗,那就够了,做得多了慢慢就明白怎么回事了,如果自己实在不能接受可以先去学习sinatra和rack,这两个东西比较基础

96

@badboy 喜欢你这样的overview! 谢谢. 我回去接着悟.

153

感觉比较简单, 不必要懂后面是怎么来的, 先去按教程做。跑起来。 中间的东西以后慢慢就会了解到。

web 这边基本上也就 http request response session cookie cache db,大多都是基于这些在运转的。

2456

我觉得学习 Ruby 就像学太极拳:忘记其它语言就容易学了。

96

@zlx_star 可否详说?

2456

rails 是一个由一群专业人员为你设计的一套较好的 web 框架,它们根据自己的经验和知识打造了一款非常易用的框架(http://ruby-china.org/topics/7791)。 所以,既然你要学习这套框架,必须按照它的习惯(或者说是约定来)来做,别的语言和框架只会限制你的思维,反而不利于学习 rails。 ruby 也是一样。

个人见解,社区高人不要见笑。

2575

我原来学Rails也有很多疑惑,主要是Rails里面很多都是Convention Over Configuration的,新手会觉得没写什么代码Model, View, Controller三层就莫名其妙的联系起来了。

我觉得对于约定这东西,

  1. 你可以不去学Rails怎么实现的,但你应该知道它是怎么工作的。
  2. Rails为什么要这样约定。

比如controller的action怎么render的。你没必要去了解Rails内部怎么实现(比如怎么获取action名字,再去找相应的view模板),但你要知道不写render就会默认去找相应的view,如果你有一些和约定不同的需求该怎么去做。比如你上面的例子,你可以去了解下

  1. 为什么用respond_to,直接render有什么不好的
  2. 看看respond_with,它能解决什么问题
  3. 如果上面都了解了,可以看看Responder,但现在不需要去学(这个就属于了解它怎么工作的范畴了)

说实话我觉得Rails其实并不算易上手,这个也许跟其他人观点不同,你看看就行。新手学习Rails往往发现敲几行代码就实现了功能,但要自己做一个跟例子不同的东西就傻了。为什么?因为你只做了一半工作,剩下的Rails的约定帮你做了。而新手可能还不大理解为什么要这样约定。约定算是一种最佳实践,但最佳实践是要自己积累才明白为什么是最佳实践的……也许这么说挺绕,希望你能明白。

总之,了解一下Rails的约定是个必要过程,了解才能驾驭。不然约定反而会让你觉得束缚。

祝你玩Rails玩的愉快~

686
  • 多看(代码背后的代码)多写(demo)
  • 多几个为什么
  • 多几个 debug
  • 多几个还可以这样做呢....
4474

#3楼 @badboy 大神,太专业了

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册