У меня есть модель клиента и метод в моем контроллере, который должен возвращать ближайшие клиенты. Я использую ActiveModel :: Serializers, но он не работает.ActiveModel :: Сериализатор не работает
class ClientSerializer < ActiveModel::Serializer
attributes :id, :name, :path, :url
def url
client_url(object)
end
def path
client_path(object)
end
end
контроллер:
def nearby_from_category
@closest_clients = Client.from_category(params[:category]).
activated.locateable.all_with_translation(@lang).
by_distance(origin: remote_ip).limit(2)
render json: @closest_clients.to_json(include: {
translations: {only: [:name, :content]},
pictures: {only: :image}
})
end
JavaScript:
$(function() {
$(".nav_category").hover(function() {
var category_dropdown = $(this).children(".category_dropdown");
var clients_from_category = category_dropdown.children(".clients_from_category");
var category_dropdown.toggle(0, "hidden");
$.get($(this).data("url"), function(response) {
var client = response[0];
var client_name = client['translations'][0]['name'];
var client_picture = client['pictures'][0]['image']['thumb']['url'];
var html;
html = "<a href='+ client.url +' class='nearest_client'>";
html += "<img src='" + client_picture +"'>";
html += client_name;
html += "</a>";
clients_from_category.html(html);
});
}, function() {
$(this).children(".category_dropdown").toggle(0, "hidden");
})
});
HTML, который получает вывод заключается в следующем:
<a href="undefined" class="nearest_client"><img src="/uploads/picture/image/361/thumbimage.jpb</a>
Оба maxcal и Gavin были правы, но я принял ответ maxcal, потому что он был первым. Благодаря обоим! –
На самом деле Гэвин бил меня на 40 секунд :) – max
Да, но мы с тобой договорились в предыдущем вопросе :) Извините, Гэвин! –