Witajcie.
Mam w bazie tabelę company_histories
z danymi historycznymi wpisów na tabeli companies
(wpisy realizowane do tabeli “his…” przez trigger bazy danych).
Chcę jakoś prezentować te dane użytkownikom.
Wymyśliłem sobie, że na formularzu Show wstawię wstawię
-
poniżej takich np wpisów aktualnego ukrywany dodatek:
<%= @company.short %>
his short
<%= @company.name %>
his name
itd…, które mają wyświetlać za chwilę historyczne wartość.
-
Listę wpisów historycznych, którą wymyśliłem tak:
<%= ff.select( :his_data, @company.company_histories.order(created_at: :desc)
.collect {|p| [ p.created_at.strftime("%Y-%m-%d %H:%M:%S"),
p.attributes ] },
{ include_blank: false, multiple: false }, class: ‘form-control’, id: ‘company_histories_list’ ) %>
czyli mam coś takiego:
w JS mogę teraz pobierać wszystkie atrybuty wybranej pozycji z listy i "odmalować je na formularzu np:
$(function() {
$(document).on('change', '#company_histories_list', function() {
var selected_pos = $("#company_histories_list :selected");
var his_short = selected_pos.attr('short');
var his_name = selected_pos.attr('name');
// ....tutaj inne atrybuty
var his_created_at = selected_pos.attr('created_at');
document.getElementById("history[short]").textContent = his_short;
document.getElementById("history[name]").textContent = his_name;
//
document.getElementById("history[created_at]").textContent = his_created_at;
});
});
No działa to, ale bardzo nie podoba mi się
Podpowiedzcie proszę
a) Jak pobrać sobie w jakiejś pętli wszystkie attr()
pobrane do
var selected_pos = $("#company_histories_list :selected")
b) jak elegancko “odmalować” to na formularzu?
Mam przecież klasę “.history” i ID elementów definiuję jako history[coś tam] …
Z góry dziękuję za pomoc.