2015-09-06 3 views
2

Мне нужно добавить символ '%' в поле 'votes_count'Как конкатенация символа в JSon рельсах 4

Моего контроллер,

@celebrity = Celebrity.includes(:category).order(votes_count: :desc) 

Я подсчет общего количества голосов здесь

total_votes = Vote.count.to_f 

изменение общего количества. голосов в процентах

@celebrity.each do |celeb|  
    celeb["votes_count"] = (celeb.votes_count/total_votes * 100).round(2) 
    end 

здесь, я меняюсь в JSON

respond_to do |format|  
    format.json { render json: @celebrity.to_json(:include =>{:category => {:only => [:category]}})}  
end 

Мой выход [{ "ID": 3, "имя": "Saravana", "пол": ложные "category_id": "1", "votes_count": 25}]

Мой вопрос, как я могу добавить символ '%' в votes_count

+0

ну, по идее MVC/rails, это презентация - это нужно сделать в шаблонах или помощниках .... –

+0

и серьезно, прекратите бессмысленные тегирования. –

ответ

0

ли это:

@celebrity.each do |celeb|  
    celeb["votes_count"] = (celeb.votes_count/total_votes * 100).round(2).to_s << "%" 
end 
0
@celebrity.each do |celeb|  
    celeb["votes_count"] = ((celeb.votes_count/total_votes * 100).round(2)).to_s + "%" 
    end 
1

Вы можете просто сделать это:

@celebrity.each do |celeb| 
    votes_count = ((celeb.votes_count/total_votes * 100).round(2)) 
    celeb["votes_count"] = "#{votes_count} %" 
    end 
0

Реальная идея MVC является сохранение данных в своей модели - неформатированный и представить его, так как вам это нужно, внутри на вид

Rails дает вам number_to_percentage http://apidock.com/rails/ActionView/Helpers/NumberHelper/number_to_percentage

# view.html.erb 
<%= number_to_percentage celeb.votes_count %> 

// так как я помню свой последний вопрос: вам нужно сохранить процент в celibrity и сохранить в БД , если вы не вы теряете производительность. представьте себе, что у вас 1000 челюстей. для чего вы хотите считать каждую страницу запросами в 1000 раз больше процентов? это глупо. если вы просто хотите подсчитать процент текущей_выбранности celibrities (скажем, top3, и у них есть 60/30/10%), то ваша математика ошибочна, так как вы связываете% со всеми голосами, а не с current_selection_votes_count)

Смежные вопросы