`
yangbinfc
  • 浏览: 46917 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ruby 杂记

 
阅读更多

1:arr.__send__strategy send动态调用方法 那个strategy方法

2:Java 不能直接传递方法,所以把简单的问题复杂化了…… ruby可以把方法块传递过去,这就是他强大的一面

3:Duck Typing (check respond_to? instead of class) 早已解耦,根本不需要中介。

4:ruby中控制循环的是: break next ;next相当于java中的continue 是继续下层循环

5:ruby中的正则表达式:

/^http:////([^//] +)/ :【^//】的意思是值包含除了 ^后面的字符外的字符

( /^http:////([^//] +)/ ).march(str)[1] 匹配的是http://linux.org 中的linux.org

6:ruby正则表达式学习网站:

http://www.rubular.com/r/OC692OE7wg

7:ruby这个符号||=

作用:有值就不赋值 无值就赋值 ep:a ||=3 a = a || 3

8:动态生成实例方法:

ruby:class_eval{}

9:

respond_to :html
, :xml
, :json

现在,我的这个controller中所有的action都支持这3种格式了,是不是比在rails2中的每个action中都写 format.html, format.xml等方便多了。观众举手发问:“如果我只想在index中接受html格式,但在show中接受json格式怎么办?”,哈 哈,Rails3也为我们想到了这个问题,respond_to 方法可以和before_filter方法一样接受only和except方法,与此同时respond_with也接受block的书写方式,这样你就可以随心所欲的定制格式了。

好,继续往下。如果你足够细心,你就会发现以前十几行代码量的create变的只有5行了。如下

1

2

3

4

5

  def
 create


    @post
 = Post.new(params[:post
])

    flash[:notice
] = 'Post
 was successfully created.
'

 if
 @post
.save

    respond_with(@post
)

  end
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics