Я динамически создаю кнопки в HTML с помощью Sinatra, есть кнопка для каждого ключа в хэше в любой момент времени выполнения, может быть больше или меньше кнопок из-за изменения размера хэша.Когда я нажимаю кнопку, я хочу передать значение, связанное с этим ключом, обратно в свой бэкэнд Ruby.
Мой код Ruby:
#app.rb
require 'sinatra'
require 'net/http'
require_relative './hashmaker.rb'
enable :sessions
set :views, "views"
set :bind, '0.0.0.0'
get '/' do
@hash = hashmaker.make_crazy_changing_hash(from_a_directory_of_files)
erb: index
end
get "/run_feature" do
return runFeature(HashValue)
Я создал таблицу в HTML с кнопкойдля каждого хеш-ключа
<html>
<head>
<title>Test</title>
<script src="https://code.jquery.com/jquery-1.10.2.min.js"> .
</script>
<script src="ajax.js"></script>
<link href="style.css" type="text/css" rel="stylesheet">
</head>
<body>
<div style="overflow-x:auto;">
<table>
<% @hash.keys.each do |feat| %>
<tr>
<td><%= feat %></td>
<% @hash[feat].each do |elem| %>
<td>
<button class="trial-version" name=<%= elem[1] %>><%= elem[0] %></button>
</td>
<% end %>
</tr>
<% end %>
</table>
</div>
</body>
</html>
я попытался добавить значение хеша в качестве имени кнопки, затем я хочу передать это имя, используя ajax в моем методе jquery onclick, в бэкэнд Ruby /run_feature get.
Мой текущий ajax выглядит следующим образом:
(document).ready(() => {
$('.trial-version').on('click', () => {
$.ajax({
type: "GET",
url: '/run_feature',
dataType: "script",
data: {HashValue: this.attr("name")}
});
});
});
Как правильно передать этот атрибут name в мой метод бэкэнда?