#ruby-on-rails #arrays #json #ruby-on-rails-5
#ruby-on-rails #массивы #json #ruby-on-rails-5
Вопрос:
Я пытаюсь реализовать платежи в биткойнах, используя Block.io , и когда я запрашиваю баланс с биткойн-адреса, он отвечает хэшем. Как я могу извлечь конкретную информацию и сделать данные удобными для пользователя.
Хэш, из которого мне нужно извлечь информацию, выглядит следующим образом:
{"status"=>"success", "data"=>{"network"=>"BTCTEST", "available_balance"=>"0.01000000", "pending_received_balance"=>"0.00000000"}}
У меня есть контроллер с методом:
class PaymentsController < ApplicationController
def index
@balance = BlockIo.get_balance
end
end
И в представлении, которое у меня есть:
<%= @balance.each do |bal| %>
<p>Balance: <%= bal[1]["available_balance"] %></p>
<% end %>
И результат, который я получаю в представлении index.html.erb, выглядит следующим образом:
Balance:
Balance: 0.01000000
{"status"=>"success", "data"=>{"network"=>"BTCTEST", "available_balance"=>"0.01000000", "pending_received_balance"=>"0.00000000"}}
Как вы можете видеть выше, он показывает баланс дважды, а также по-прежнему показывает хэш в представлении.
Как я могу показать только баланс: 0.01000000?Любая помощь или комментарий приветствуются.
Ответ №1:
Во-первых, это Hash
, не Array
:
{"status"=>"success", "data"=>{"network"=>"BTCTEST", "available_balance"=>"0.01000000", "pending_received_balance"=>"0.00000000"}}
Во-вторых, вы можете сделать это в своем файле представления:
<p>Balance: <%= @balance["data"]["available_balance"] %></p>
Комментарии:
1.@MorezSA Вы можете сделать это:
routes.rb
get 'payment/result=:balance' => 'payment#show', as: :test_payment
в вашем контроллере: def показать конец в вашем представлении:test_payment_path(@balance["data"]["available_balance"])