`구문 오류, 예상치 못한 tCONSTANT, 키워드_끝 예상`이 발생하는 이유는 무엇입니까?

StackOverflow https://stackoverflow.com//questions/25005800

문제

특정 쇼핑몰에서 특정 제품의 가격을 확인하고 싶습니다.

편집이 더 쉽도록 웹샵 데이터의 해시를 저장하기 위해 상수를 사용하고 있습니다(더 많은 매장이 추가될 예정입니다).

내가 사용하는 코드는 다음과 같습니다.

require 'httparty'
require 'nokogiri'

class Prijscheckr

  STORES = {
    :zara => {
      'base_uri' => 'http://www.zara.com/nl/',
      'normal_price_css' => 'p.price > span',
      'css_normal_price_extract' => "[0].attr('data-price')",
      'normal_price_xpath' => '/p[3]/span',
      'xpath_normal_price_extract' => "[0].attr('data-price')"
    }
  }

  def begin(args = {})
    page = Nokogiri::HTML(HTTParty.get(args[:url]))

    price = page.css(STORES[:zara]['normal_price_css'])STORES[:zara]['css_normal_price_extract']
  end
end

할 때

p = Prijscheckr.new

p.begin(url: 'http://www.zara.com/nl/nl/collectie-aw14/dames/jacks/leren-bikerjack-c269184p2137577.html')

결과는 다음과 같습니다.

    # Works
    # price = page.css('p.price > span')[0].attr('data-price')

    # Works
    # price = page.css(STORES[:zara]['normal_price_css'])[0].attr('data-price')

    # Does not work
    # price = page.css(STORES[:zara]['normal_price_css'])STORES[:zara]['css_normal_price_extract']

어떻게 연결하나요? price = page.css(STORES[:zara]['normal_price_css'])STORES[:zara]['css_normal_price_extract'] 메소드에 하드 코딩하지 않고?

도움이 되었습니까?

해결책

문자열을 연결하여 루비 코드를 생성할 수 없습니다.당신은 선언하고 싶을 수도 있습니다 css_normal_price_extract 람바로

'css_normal_price_extract' => ->(val) {val[0].attr('data-price')}

price = STORES[:zara]['css_normal_price_extract'].call(page.css(STORES[:zara]['normal_price_css']))
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top