ruby-on-rails - Ruby 变量仅分配给关键字 "new"

标签 ruby-on-rails ruby

这很难搜索,但我在类方法中有一行 Ruby,其中首先通过为变量分配一个裸 new 来声明变量。关键字,我不确定这里发生了什么:

  def self.html_render_controller(post)
    controller = new
    controller.action = 'show'
    controller.post = post
    controller.render_to_string
  end
来自其他语言,在我看来就像 controller被隐式初始化为某种对象。和 render_to_string是内置的 Rails,所以我最好的猜测是 controller被初始化为某种 Rails 对象?
我想我的问题真的是 controller 的值是多少?在第一个任务之后?或者什么样的执行规则甚至只是 Ruby 中的文档会为我指明正确的方向来理解这种速记?

最佳答案

它不像 ruby​​ 代码那么奇怪。这是相当直接的。new不是关键字是对隐式调用的方法 self .
在 Ruby 中调用方法不需要括号。
如果你在 Ruby 中调用一个没有显式接收器的方法,接收器将是 self , 在方法体内部 self.html_render_controller , self引用定义方法的类。
所以执行 new方法内部self.html_render_controller只需返回定义方法的类的新对象。
您可以在 new 上获得更多详细信息来自 documentation on Class ,即 Ruby 中任何类的类,作为类只是类 Class 的对象.

关于ruby-on-rails - Ruby 变量仅分配给关键字 "new",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63692492/

相关文章:

Ruby Hash 不工作 API - 冒号

ruby - 如何在 IntelliJ IDEA Community 12 中获得 ruby​​ 语法高亮

ruby-on-rails - 在嵌套的 Rails 表单上创建多对多关系

ruby-on-rails - rails gem prawn,图像和 anchor

ruby-on-rails - 如何告诉TextMate忽略 “Go to File”中我的Katz的Bundler文件夹?

ruby-on-rails - 如何在 Ruby 中用 map 重构每个函数?

ruby - 哈希迭代,以数组为键

ruby-on-rails - ruby 中的 "sort"和 "sort!"方法有什么区别?

javascript - 带 ActionCable 的回形针

ruby-on-rails - 将 Ruby 哈希转换为数组