这条线在Ruby中意味着什么?

时间:2010-08-24 07:30:20

标签: ruby-on-rails ruby

def show
  render :text => params.inspect
end

什么是render :text =>

什么是render:text=>
它们是标准的红宝石吗?

5 个答案:

答案 0 :(得分:5)

您在该代码段中使用的语法不仅限于render(),但在许多其他Ruby on Rail方法中也很常见。

该方法使用简化的语法接受哈希映射 代码等同于

def show
  render({:text => params.inspect})
end

包含相同语法的其他代码段包括:

def sign
  Entry.create(params[:entry])
  redirect_to :action => "index"
end

url_for :controller => 'posts', :action => 'recent'
url_for :controller => 'posts', :action => 'index'
url_for :controller => 'posts', :action => 'index', :port=>'8033'
url_for :controller => 'posts', :action => 'show', :id => 10
url_for :controller => 'posts', :user => 'd', :password => '123'

def show
  @article = Article.find(params[:id])
  fresh_when :etag => @article, :last_modified => @article.created_at.utc, :public => true
end

答案 1 :(得分:3)

render是rails API。见doc。对于其他所有事情,let me recommend you something你会明白的。

答案 2 :(得分:2)

您发布的语法是一种更漂亮的写作方式

render({:text => "hello world"})

基本上,你正在调用一个方法,传入一个Hash对象(它是键值对的集合)。哈希包含1对,其键为:text(:表示它是一个名为text的符号),该值为“hello world”的字符串

我认为你应该在深入研究轨道之前阅读ruby入门指南。

答案 3 :(得分:1)

render:text习惯用于直接将文本呈现给响应,没有任何视图。它在这里用于调试目的,它将params散列的内容转储到响应页面而不通过页面视图。

答案 4 :(得分:1)

render :text => "hello world!"

使用状态代码200

呈现明文“hello world”

这就是:text => ...的含义 参考http://api.rubyonrails.org/classes/ActionController/Base.html