好同志啊,自己解决问题,很好,很好(hao4)学:)
那么我能做的就是:帮你批改下作业:重构,据说重构很无情,呵呵
重构第一步:其实ruby最后一句就是他的返回值了,那么可以简化为
def sql
"sincyaku like '%" + @params[:txtSincyaku].to_s + "%'"
end
重构第二步:@params在rails 2.0中被params替换了,所以修改为
"sincyaku like '%" + params[:txtSincyaku].to_s + "%'"
还不如
%Q{sincyaku like '%#{params[:txtSincyaku]}%'}了。
重构第三步:请停止拼sql
def index
@kejibans = Kejiban.find :all, :conditions => ['sincyaku like ?',"%#{params[:txtSincyaku]}%"]
end重构第四步:将你的数据库操作转到AR里面去
class Kejiban < AR
class<<self
def query(param)
find :all,:conditions=>['sincyaku like ?',"%#{param}%"]
end
end
endaction的代码修改为
def index
@kejibans = Kejiban.query params[:sincyaku]
end
重构第五步:美化一下like (可以忽略)
其实我觉得rails2中的conditions通过hash来传递值功能蛮好,蛮强大的。不过可惜这里是like,不是=
有几个插件支持这样的语法,你可以考虑自己再深入研究下。
Enjoy.
[
本帖最后由 martin 于 2008-3-13 17:21 编辑 ]