devise ajax email sign_in & sign_up

首先要说明一下,在ruby中呼叫方法的时候常常适当的省略小括号。

def set_girl_name(name)
  puts "hi, #{name}"
end

set_girl_name("abbey") 等同于 set_girl_name "abbey"

Ruby并没有「属性」(property/attribute)这样的东西。

class Girl
  def initialize(age)
    @age = age
  end
end

litter_girl = Girl.new(18)

litter_girl.age其实是在呼叫Grilage这个方法,如果没有定义直接抛出 undefined method 'age'。如果要进行setterlitter_girl.age = 19,其实Ruby是在寻找 age=这个方法。

class Girl
  def initialize(age)
    @age = age
  end

  def age
    @age
  end

  def age=(new_age)
    @age = new_age
  end
end

litter_girl = Girl.new(18)
class Girl
  def initialize(age)
    @age = age
  end

  attr_accessor :name
end

litter_girl = Girl.new(18)
說穿了 Ruby 一堆東西都是方法!

你以為 1 + 2 是簡單的數學運算嗎? 其實它是 1.+(2),它是對數字物件 1 送了一個 + 的訊息,並且把數字物件 2 當做參數傳給它

https://ruby-china.org/topics/24631