Как изменить элемент html из ruby с помощью synatra и bootstrap

136
18

Вот мой файл index.erb:

  <a class="btn" href='javascript:TestFunction()' role="button">TestFunction</a>

<script language="javascript">

function TestFunction() {
$.post("test_function", { action: "foo", name: "bar" } );
}

</script>
</body>

И мой файл app.rb выглядит так

class ConfigureApp < Sinatra::Base
get '/' do
erb :index
end

post '/test_function' do
button_action = params.fetch("action")
test_class = TestClass.new
test_class.action(button_action)
end
end

Файл TestClass.rb:

class TestClass
def action(button_action)
if button_action == "foo"
new_button_label = "something else"
end
end
end

Есть ли способ изменить ярлык кнопки TestFunction от TestClass? Поэтому, используя приведенные выше примеры, могу ли я переименовать кнопку TestFunction, "что-то еще"?

спросил(а) 2016-02-05T00:38:00+03:00 5 лет назад
1
Решение
112

Я понял способ сделать это. Я могу отправить сообщение '/test_function' и отправить параметры действия и имени. Затем используйте функцию в качестве третьего параметра функции post, чтобы получить возврат с стороны Ruby, который может вернуть новую метку кнопки. Затем я мог бы использовать JQuery для обновления кнопки html или innerText или того, что мне нужно обновить. Вот как я это сделал:

  <a class="btn" id='btn-foo' href='javascript:TestFunction()' role="button">TestFunction</a>

<script language="javascript">

function TestFunction() {
$.post("test_function", { action: "foo", name: "bar" }, function(data) {
$('#btn-foo').html = data;
});
}

</script>
</body>

ответил(а) 2016-02-18T00:17:00+03:00 5 лет назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема