복붙노트

[RUBY-ON-RAILS] 지도 무엇을 않습니다 (: name)이 루비 코드에서 무엇입니까?

RUBY-ON-RAILS

지도 무엇을 않습니다 (: name)이 루비 코드에서 무엇입니까?

조금 더 나은 루비를 이해하려고 노력, 나는 인터넷을 서핑이 코드로 실행 :

require 'rubygems'
require 'activeresource'



ActiveResource::Base.logger = Logger.new("#{File.dirname(__FILE__)}/events.log")

class Event < ActiveResource::Base
  self.site = "http://localhost:3000"
end

events = Event.find(:all)
puts events.map(&:name)

e = Event.find(1)
e.price = 20.00
e.save

e = Event.create(:name      => "Shortest event evar!", 
                 :starts_at => 1.second.ago,
                 :capacity  => 25,
                 :price     => 10.00)
e.destroy

작업 : events.map (이름 &)를 어떻게하는지 내가 특히 관심있어인가? 나는 이벤트가 배열 것을 볼, 따라서 그것의지도 메소드를 호출합니다. 이제 내 질문은, 어디 블록이 생성 맵에 전달되는 것입니다인가? 이러한 맥락에서 이름 : 기호는 무엇인가? 나는 그것이 어떻게 작동하는지 이해하기 위해 노력하고있어.

해결법

  1. ==============================

    1.

    events.map(&:name)
    

    정확히 동일합니다

    events.map{|x| x.name}
    

    그냥 편리 문법 설탕입니다.

    자세한 내용은 여기에 기호 # to_proc 방법을 확인하십시오. 여기서, : 이름이 발동으로 강제되고있다.

    그런데,이 여기 자주 온다 - 그것은 구글하거나 '앰퍼샌드와 콜론 것은':)를 검색 단지 매우 어렵다.

  2. from https://stackoverflow.com/questions/2388337/what-does-mapname-do-in-this-ruby-code by cc-by-sa and MIT license