Я использую linkscape-gem seomoz для получения данных с помощью их API, который я хотел бы поверните, чтобы отобразить в виде. (примечание: я также использую Wicked gem для поэтапного построения объекта). В настоящее время у меня есть это в моем контроллере:

def update
  @bid = Bid.find(params[:bid_id])
  @linkscape = moz if step == steps.second
  @bid.attributes = build_params
  render_wizard @bid
end

def moz
  @client = Linkscape::Client.new(:accessID => "accessID", :secret => "secret")
  @response = client.urlMetrics("http://example.com", :cols => :all)
  return @response
end

И на мой взгляд:

<%= debug(@linkscape) %>

В отладочной части представления ничего не отображается, поэтому мне интересно, 1) я использую неправильный синтаксис 2) неправильно обращаюсь к информации API (я создал учетную запись Moz и сгенерировал идентификатор доступа и секретный ключ, и они используются ) 3) непонимание того, как отображать вары контроллера в представлениях или 4) что-то еще.

2
jordan 29 Апр 2014 в 01:19

2 ответа

Лучший ответ

Произошла опечатка: вы сохраняете экземпляр Linkspace::Client.new внутри переменной экземпляра @client, но пытаетесь вызвать urlMetrics для переменной с именем client, о которой он не знает о.

def moz
  client = Linkscape::Client.new(:accessID => "accessID", :secret => "secret")
  @response = client.urlMetrics("http://example.com", :cols => :all)
  return @response
end

Надеюсь, это поможет! :)

3
uday 6 Май 2014 в 01:12

Чтобы регистратор заработал и получил ответ, вам нужно сначала исправить ошибку опечатки, которая заключается в том, что назначение @response должно быть изменено на @client вместо client.

def moz
  @client = Linkscape::Client.new(:accessID => "accessID", :secret => "secret")
  @response = @client.urlMetrics("http://example.com", :cols => :all)
  return @response
end

Затем в представлении вы можете распечатать значения, используя два способа. Сначала использует

Rails.logger.debug("My object: #{@linkscape.inspect}") 

И просмотрите журнал разработки, чтобы увидеть результаты

ИЛИ по-своему

<%= debug(" Linkscape Value"+@linkscape) %>

Если ваше значение становится пустым, это означает, что условие if установлено в false, и ваш @linkscape не получает значения

1
Asim Mushtaq 7 Май 2014 в 06:55