分清form_for和form_tag

作者:dawncold 发布时间:February 14, 2012 分类:技术 No Comments

两个都是做form的指令,form_for是用来和一个model一块用的时候使用,form_tag就是普通的form了,侧重传值什么的。当初用了form_for来做了个登陆界面,怎么都得不到username和password,原来是这样,必须如此引用才可以——params[:user][:username],前面的:user是我给form_for的第一个参数,这个form的所有信息都得加[:user]这样的前缀才能得到了,让我十分痛苦(又加上是个2.14)

使用form_tag后对于它的action不太会控制,所幸不写参数了,正好action指向本地址,省事儿!

感谢这里写的内容

Ruby中的write_attribute

作者:dawncold 发布时间:February 14, 2012 分类:技术 No Comments

有时候想修改一下自己的setter方法,于是会容易犯这样的一个错误:


  def password=(pwd)
    @password = pwd
    return if @password.blank?
    create_new_salt
    self.password = xxx
  end

最后那行使用了self.password= xxx,你有没有注意到我们这个方法就是password=,你在自己调用自己,如果有条件停止的话,那这叫递归,如果没有的话,这就是死循环喽,ruby可能会抛出一个stack too deep的错误(rails至少会这样说),此时需要一个magic!


write_attribute(:password, User.encrypted_password(self.password, self.salt))

使用write_attribute(xxx,jjj)即可,意思就是把jjj赋值给xxx了,因为此时正好在定义xxx,所以不能用xxx = 这样的方法赋值。

痛苦的rails

作者:dawncold 发布时间:February 12, 2012 分类:技术 No Comments

由于rails给我带来的痛苦,让我对ruby这门写着code for fun的语言产生了怀疑,真得有fun么?一开始就没有感觉,现在来看更是如此。

rails是一个正在成长的框架,每一个小版本号的变动都可能会引入和废弃不少特性,而我又傻傻地在使用最新的rails(3.2.1),书上讲的都是rails2.2.2的内容,乍一看变动不应该太大啊,实际上并不是如此!!!

对于一个新手来说,学习一个正在成长的框架是痛苦的:(

蛋疼的No route matches “/say/hello”

作者:dawncold 发布时间:February 9, 2012 分类:技术 No Comments

现在有些后悔买的那本书了,《web开发敏捷之道第三版》,那本书的代码使用的是rails2.2.2,真够2的,现在用的是3.2.1,作者说有不少代码已经更改了,但没想到会差得连我都能看出来,我只是个初学者啊!好在我还能稍稍应付自如,后面可能就会更加累了!

一开始在helloworld部分就遇到一个问题,用rails generate controller say后根本不能自动添加一条routes,找了原作者的wiki更新发现这里已经需要自己修改routes的内容了,不过也好,消去一行注释即可:)

感谢这里

如果还有谁遇到类似不兼容问题,请看作者的wiki更新吧,希望有帮助!

emacs中auto-complete插件问题

作者:dawncold 发布时间:February 9, 2012 分类:技术 No Comments

一般都是直接打开emacs使用,偶尔在terminal中用emacs发现出现错误:Wrong number of arguments: called-interactively-p, 1

看了看是auto-complete的某些错误,通过Google得到了相关问题的解决,删除auto-complete的elc文件,似乎这些文件是可以加速插件的运行编译出来的,现在删除后在terminal中使用就没问题了!

感谢这里的帮助