`
sizhefang
  • 浏览: 227273 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

学习ror应该选择什么open source

    博客分类:
  • ruby
阅读更多
    前段时间项目一直很忙,没时间学习ror。最近终于闲下来了。又开始学习ror。这次主要是仔细学习了一下ruby。(自己也犯了和很多人同样的错误,没有很好的学习ruby,就开始照着Agile Web Development with Rails学习rails)。
    ruby学的差不多了,开始仔细阅读中国人自己写的第一个ror的open soruce Hamster。从中学到了一些东西。但看了两天还是决定放弃他了(没有任何贬低Hamster原作者的意思)。之所以决定放弃学习Hamster原因主要还是感觉其中的部分source还是优点不够严谨。下面举几个例子
1.存在没有防止sql注入的代码
tmp_roles = Role.find_by_sql("select roles.id from roles,departments where roles.department_id = departments.id and departments.id=#{department_id}")

2.在进行修改的时候用了下面的方法
	def edit_agent
		if request.get?
			@agent = Agent.find(params[:id])
		else
			
			agent = Agent.find(params[:id])
			agent.name = params[:name]
			agent.part = params[:part]
			agent.person = params[:person]
			agent.sex = params[:sex]
			agent.phone = params[:phone]
			agent.mobile = params[:mobile]
			agent.lingtong = params[:lingtong]
			agent.fax = params[:fax]
			agent.address1 = params[:address1]
			agent.address2 = params[:address2]
			agent.qq = params[:qq]
			agent.msn = params[:msn]
			agent.email = params[:email]
			agent.favor = params[:favor]
			agent.second_person = params[:second_person]
			agent.second_phone = params[:second_phone]
			agent.memo = params[:memo]
			if agent.save
				flash[:notice] = "<img src='/images/ok.gif'><font color='green'>#代理商#{agent.name}已经成功修改!</font>"
    			redirect_to(:action=>'list_agent')
			end
		end
	end

我觉的用下面的方法就可以了
  def edit_agent
    if request.get?
      @agent = Agent.find(params[:id])
    else			
      agent = Agent.find(params[:id])
      if agent.update_attributes(params[:agent])
        flash[:notice] = "<img src='/images/ok.gif'><font color='green'>#代理商#{agent.name}已经成功修改!</font>"
        redirect_to(:action=>'list_agent')
      end
    end
  end

3.在control中存在类似@params这样直接使用实例变量的地方。我觉的还是使用访问子的方式params[:XXX]比较好
4.在前态页面最好使用rails提供的帮助方法,如果想自己写静态标签也应该和rails提供的帮助方法生成的静态标签相同的,不要出现下面的代码
<input type="text" value="<%=@family.name%>" name="name">

这样到contorl里面只能大量的使用params[:XXX]
5.如果使用下面的代码
<%= form_tag %>
<%= end_form_tag %>

在control/action里面如果还想重定向到当前的action里面,那么就不用在action里面再写redirect_to了。毕竟rails的哲学是Don't repeat yourself
再次重申一下,上面的一切内容都是从纯技术的角度看待hamster,也许在hamster的最新版里已经没有现在的情况了(自己比较懒没有跟踪最新版,我说的这五点可能也有不对的地方)同时要感谢hamster的原作者们在业余时间写了hamster,为我们学习ror提供了良师易友
我现在在学习Mephisto,不知道大家都在学什么
分享到:
评论
20 楼 sean 2007-05-11  
substruct?
19 楼 kris_xu 2007-05-10  
觉得闲只是因为自己懒。
18 楼 kaven 2007-04-10  
我现在想要全面采用rest,depot感觉还是不够。
要是Agile Web Development with rails里面全面rest就好了。
beast到是一个很好的rest范例,不过只有原码,看起来比较累,不知道有没有什么好的文档。
17 楼 cjyzpcl 2007-03-15  
beast用于学习效果如何,请下,因为需要开始深入学习ror了。
16 楼 sizhefang 2007-03-14  
厌倦发呆 写道
sizhefang 写道
cfc 写道
sizhefang 写道
dogstar 写道
robbin 写道
其实《Agile Web Development with rails》的Depot就足够了。


同意

如果你没有项目做的话,就学习学习ruby。跑到这里来挑人家的刺就是你的不对了。毕竟人家这个项目是以一己之力,在ror这本书还没有出之前写的。有些瑕疵应当理解。而且,有足够的勇气开源出来,值得尊敬。至于里面的一些瑕疵,可以有读者自己去辨别,吸取自己需要的东西,不用全盘接受。

建议:下载一个开源的项目,在编写自己的项目的时候遇到问题了打开看看就行了。有时间陪陪女朋友岂不是乐哉。。。

如果不能接受,自己去写一个,也开源出来。不就有项目做了。

可能dogstar误解我的意思了,我强调了两遍我的立场,其实写这些东西也很担心有人象dogstar这样误解,我的初中就是想让大家的ror程序更合理,没有其他意思。如果大家都能把自己看到的程序的缺点写出来(当然不可能是全部),那大家起不是在日后写程序的时候都会有进步了。


sizhefang,我支持你
不過我在想,agent那個部分之所以會用到一堆params,而不用params[:agent]或許是有它的考量
所以.. 才會改用這種寫法

我想不出他为什么要用一堆params[:XXX],不知道哪位大牛明白hamster作者的用意


明確寫出來具體的:XXXX可以防止被人惡意提交數據,更新對象的其他屬性(比如is_admin這種)的程序漏洞

如果是为了防止恶意提交数据可以用attr_accessible来指定可修改的字段或用attr_protected指定所有不能修改的字段就可以了,不需要这么多行的params[:xxx]
15 楼 厌倦发呆 2007-03-14  
sizhefang 写道
cfc 写道
sizhefang 写道
dogstar 写道
robbin 写道
其实《Agile Web Development with rails》的Depot就足够了。


同意

如果你没有项目做的话,就学习学习ruby。跑到这里来挑人家的刺就是你的不对了。毕竟人家这个项目是以一己之力,在ror这本书还没有出之前写的。有些瑕疵应当理解。而且,有足够的勇气开源出来,值得尊敬。至于里面的一些瑕疵,可以有读者自己去辨别,吸取自己需要的东西,不用全盘接受。

建议:下载一个开源的项目,在编写自己的项目的时候遇到问题了打开看看就行了。有时间陪陪女朋友岂不是乐哉。。。

如果不能接受,自己去写一个,也开源出来。不就有项目做了。

可能dogstar误解我的意思了,我强调了两遍我的立场,其实写这些东西也很担心有人象dogstar这样误解,我的初中就是想让大家的ror程序更合理,没有其他意思。如果大家都能把自己看到的程序的缺点写出来(当然不可能是全部),那大家起不是在日后写程序的时候都会有进步了。


sizhefang,我支持你
不過我在想,agent那個部分之所以會用到一堆params,而不用params[:agent]或許是有它的考量
所以.. 才會改用這種寫法

我想不出他为什么要用一堆params[:XXX],不知道哪位大牛明白hamster作者的用意


明確寫出來具體的:XXXX可以防止被人惡意提交數據,更新對象的其他屬性(比如is_admin這種)的程序漏洞
14 楼 baizheng 2007-03-14  
mephisto 也不错.
13 楼 javsky 2007-03-14  
支持sizhefang,学习开源的东西我们就应该多提问题、多点想法,共同进步!呵呵 学习ING!
12 楼 dearwolf 2007-03-13  
我也想不明白一堆params是干什么的
11 楼 sizhefang 2007-03-13  
cfc 写道
sizhefang 写道
dogstar 写道
robbin 写道
其实《Agile Web Development with rails》的Depot就足够了。


同意

如果你没有项目做的话,就学习学习ruby。跑到这里来挑人家的刺就是你的不对了。毕竟人家这个项目是以一己之力,在ror这本书还没有出之前写的。有些瑕疵应当理解。而且,有足够的勇气开源出来,值得尊敬。至于里面的一些瑕疵,可以有读者自己去辨别,吸取自己需要的东西,不用全盘接受。

建议:下载一个开源的项目,在编写自己的项目的时候遇到问题了打开看看就行了。有时间陪陪女朋友岂不是乐哉。。。

如果不能接受,自己去写一个,也开源出来。不就有项目做了。

可能dogstar误解我的意思了,我强调了两遍我的立场,其实写这些东西也很担心有人象dogstar这样误解,我的初中就是想让大家的ror程序更合理,没有其他意思。如果大家都能把自己看到的程序的缺点写出来(当然不可能是全部),那大家起不是在日后写程序的时候都会有进步了。


sizhefang,我支持你
不過我在想,agent那個部分之所以會用到一堆params,而不用params[:agent]或許是有它的考量
所以.. 才會改用這種寫法

我想不出他为什么要用一堆params[:XXX],不知道哪位大牛明白hamster作者的用意
10 楼 cfc 2007-02-26  
sizhefang 写道
dogstar 写道
robbin 写道
其实《Agile Web Development with rails》的Depot就足够了。


同意

如果你没有项目做的话,就学习学习ruby。跑到这里来挑人家的刺就是你的不对了。毕竟人家这个项目是以一己之力,在ror这本书还没有出之前写的。有些瑕疵应当理解。而且,有足够的勇气开源出来,值得尊敬。至于里面的一些瑕疵,可以有读者自己去辨别,吸取自己需要的东西,不用全盘接受。

建议:下载一个开源的项目,在编写自己的项目的时候遇到问题了打开看看就行了。有时间陪陪女朋友岂不是乐哉。。。

如果不能接受,自己去写一个,也开源出来。不就有项目做了。

可能dogstar误解我的意思了,我强调了两遍我的立场,其实写这些东西也很担心有人象dogstar这样误解,我的初中就是想让大家的ror程序更合理,没有其他意思。如果大家都能把自己看到的程序的缺点写出来(当然不可能是全部),那大家起不是在日后写程序的时候都会有进步了。


sizhefang,我支持你
不過我在想,agent那個部分之所以會用到一堆params,而不用params[:agent]或許是有它的考量
所以.. 才會改用這種寫法
9 楼 cfc 2007-02-26  
beast之前我發現到一個bug
不過好像都沒人回應我T_T
8 楼 aardvark 2007-02-16  
beast有种很恶劣的倾向,刻意减少程序行数,有时候到了很过分的程度。我现在看到的最长的一行有大约250个字符,不知道有没有更长的。

不过,尽管如此,还是可以从beast学到不少东西。
7 楼 李超群 2007-02-14  
如果你用rest,beast就是最好的参考。里面可以发现很多不错的practice.
6 楼 robbin 2007-02-14  
听说beast不错。不过我到是没有参考过什么rails的开源项目。
5 楼 sizhefang 2007-02-14  
在这里说句题外话,有时候指出别人存在的问题,很可能是出于一种善意的目得,而不是象其他人说的。。。
4 楼 sizhefang 2007-02-14  
dogstar 写道
robbin 写道
其实《Agile Web Development with rails》的Depot就足够了。


同意

如果你没有项目做的话,就学习学习ruby。跑到这里来挑人家的刺就是你的不对了。毕竟人家这个项目是以一己之力,在ror这本书还没有出之前写的。有些瑕疵应当理解。而且,有足够的勇气开源出来,值得尊敬。至于里面的一些瑕疵,可以有读者自己去辨别,吸取自己需要的东西,不用全盘接受。

建议:下载一个开源的项目,在编写自己的项目的时候遇到问题了打开看看就行了。有时间陪陪女朋友岂不是乐哉。。。

如果不能接受,自己去写一个,也开源出来。不就有项目做了。

可能dogstar误解我的意思了,我强调了两遍我的立场,其实写这些东西也很担心有人象dogstar这样误解,我的初中就是想让大家的ror程序更合理,没有其他意思。如果大家都能把自己看到的程序的缺点写出来(当然不可能是全部),那大家起不是在日后写程序的时候都会有进步了。
3 楼 dogstar 2007-02-14  
robbin 写道
其实《Agile Web Development with rails》的Depot就足够了。


同意

如果你没有项目做的话,就学习学习ruby。跑到这里来挑人家的刺就是你的不对了。毕竟人家这个项目是以一己之力,在ror这本书还没有出之前写的。有些瑕疵应当理解。而且,有足够的勇气开源出来,值得尊敬。至于里面的一些瑕疵,可以有读者自己去辨别,吸取自己需要的东西,不用全盘接受。

建议:下载一个开源的项目,在编写自己的项目的时候遇到问题了打开看看就行了。有时间陪陪女朋友岂不是乐哉。。。

如果不能接受,自己去写一个,也开源出来。不就有项目做了。
2 楼 sizhefang 2007-02-14  
Depot的source小弟已经敲了一遍了,对编写rails代码的帮助是挺大的。可现在没有ror的项目可做,项目又不是很紧,就想找些好的 open source看看,学习一下别人好的动西:)
1 楼 robbin 2007-02-14  
其实《Agile Web Development with rails》的Depot就足够了。

相关推荐

    Source.Insight.v3.50.0027-ROR.rar

    《Source Insight v3.50.0027:深入解析高效源代码分析工具》 Source Insight是一款广受程序员喜爱的源代码查看、编辑和分析工具,尤其在软件开发领域,它以其强大的功能和高效的性能著称。版本v3.50.0027是该软件...

    RoR性能优化经验谈

    RoR(Ruby on Rails)是一种流行的开源Web开发框架,以其高效和简洁的代码著称。然而,随着网站规模的增长,性能优化成为...通过学习和实践这些经验,开发者可以更好地应对RoR性能挑战,创建出更健壮、高效的Web应用。

    Source.Insight.v3.50.0027-ROR

    Source.Insight.v3.50.0027-ROR 里面有注册机,可以下载

    神经网络ror resenet模型

    在Ror块中,不仅有常规的残差学习,还有更高层次的残差学习,即残差学习的残差。这种多层次的结构使得网络能更细致地理解特征,并且有助于减少过拟合,提高模型的泛化能力。 **CIFAR-10和CIFAR-100数据集** CIFAR-...

    ror中文资料

    在提供的压缩包文件中,我们可以看到"Ruby语言中文教程",这暗示了资源可能包含了关于Ruby语言的基础知识和进阶内容,对于学习RoR至关重要。Ruby是RoR的基础,理解其语法和特性对于掌握RoR框架极其关键。 **Ruby...

    ror

    NULL 博文链接:https://xuxiangpan888.iteye.com/blog/266696

    RoR选题方向—源代码

    ASP.NET、C#和J2EE/Java是RoR的主要竞争对手,它们各自有各自的优点和适用场景,了解这些技术可以帮助你比较和选择最适合的开发工具。 在深入研究RoR源代码时,建议先从官方文档和开源项目开始,例如GitHub上的...

    learnRoR:艰难地学习RoR

    【标题】"learnRoR:艰难地学习RoR"揭示了这个项目是关于学习Ruby on Rails(RoR)框架的个人历程。RoR,或Rails,是由David Heinemeier Hansson开发的一个开源Web应用程序框架,它完全用Ruby编程语言编写。Ruby是一...

    Windows 上搭建 ROR环境

    ### Windows上搭建Ruby on Rails(ROR)环境详解 #### 一、引言 随着Web开发技术的不断发展,Ruby on Rails(简称Rails或ROR)作为一种高效、简洁且优雅的Web开发框架,受到了广大开发者的青睐。然而,在Windows...

    ror实例

    "ror实例"可能指的是在学习或实践中,通过创建一个具体的Rails应用程序来理解和掌握RoR的工作原理和最佳实践。 在Ruby on Rails中,重要知识点包括: 1. **Gemfile与Gemfile.lock**:项目中的Gemfile用于指定项目...

    初探ROR

    **初探ROR** Ruby on Rails(简称ROR)是一个基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)架构模式,旨在促进...通过学习和实践,你将能够利用ROR构建出功能强大、易于维护的Web应用程序。

    ROR安装必备所有架包

    在Ruby on Rails(ROR)开发环境中,安装和配置正确的依赖包是至关重要的。这个压缩包包含了一系列用于ROR框架的基础组件,但不包括Ruby本身。让我们深入了解一下这些包的作用和重要性。 首先,`actionpack`是Rails...

    RoRBlog 基于RoR的博客系统

    基于RoR的博客系统,代码风格简单清晰,前后太完善,适合初学者。

    ROR 文件的上传与下载

    ### ROR 文件的上传与下载:深入解析与实践 在Ruby on Rails(简称ROR)框架下,处理文件的上传与下载是一项常见的需求,尤其是在构建包含媒体内容的应用程序时。本文将基于给定的文件信息,详细阐述如何在Rails...

    机遇ROR 的图书管理系统

    《机遇ROR的图书管理系统》是一份以Ruby on Rails(简称ROR)技术为核心,旨在构建高效、便捷的图书管理解决方案的学习资料。Ruby on Rails,是基于Ruby编程语言的开源Web应用框架,它遵循MVC(Model-View-...

    RoR 培训课程PPT

    ### RoR培训课程PPT知识点概述 #### 一、课程概览与背景介绍 - **课程性质**:本课程为为期五天的Ruby on Rails(简称RoR)入门级培训,适合初学者快速掌握RoR的基本概念和技术要点。 - **讲师信息**:由Peter ...

    ROR环境配置

    在IT行业中,Ruby on Rails(简称ROR)是一款基于Ruby语言的开源Web应用程序框架,它遵循MVC(Model-View-Controller)架构模式,旨在简化Web应用开发过程,提高开发效率。本文将深入探讨如何配置ROR开发环境,以及...

    ROR绿色最新环境(2013/3/10)

    ROR环境 Ruby version 1.9.3 (java) RubyGems version 1.8.24 Rack version 1.4 Rails version 3.2.12 JavaScript Runtime therubyrhino (Rhino) Active Record version 3.2.12 Action Pack version 3.2.12 ...

    freemis 基于ror框架的mis

    FreeMIS是一个基于Ruby on Rails(RoR)框架构建的管理信息系统(MIS)。RoR是由David Heinemeier Hansson开发的一个开源Web应用程序框架,它遵循“Don't Repeat Yourself”(DRY)原则,强调简洁和生产力。RoR使用...

Global site tag (gtag.js) - Google Analytics