Как показать сумму столбцов в Rails - PullRequest
0 голосов
/ 09 октября 2019

Я хочу отобразить сумму названия столбца «деньги» в моей модели Заработок. В консоли рельсов я могу легко получить сумму, которую хочу Earning.sum(:money), и она показывает сумму.

yield_controller.rb

def index
  @earnings = Earning.sum(:money)
end

index.html.erb

<p id="notice"><%= notice %></p>

<h1>Earnings</h1>

<table>
  <thead>
    <tr>
      <th>Money</th>
      <th colspan="3"></th>
    </tr>
  </thead>

  <tbody>
    <% @earnings.each do |earning| %>
      <tr>
        <td><%= earning.money %></td>
        <td><%= link_to 'Show', earning %></td>
        <td><%= link_to 'Edit', edit_earning_path(earning) %></td>
        <td><%= link_to 'Destroy', earning, method: :delete, data: { confirm: 'Are you sure?' } %></td>
      </tr>
    <% end %>
  </tbody>
</table>

<br>

<%= link_to 'New Earning', new_earning_path %>

Он продолжает выдавать эту ошибку

NoMethodError in Earnings#index

Что я пробовал до сих пор

Я в тупике. Я попытался изменить действие index на @earnings = доход.sum (: деньги), и это привело меня к ошибке «NameError in EarningsController # index». Я также видел подобную проблему здесь , но, поскольку я думаю, что проблема находится в моем index.html.erb, это не сильно помогло. Как я уже говорил ранее, код работает в Rails Console. Заранее благодарю за любую помощь.

Ответы [ 2 ]

0 голосов
/ 09 октября 2019

Похоже, вы хотите сделать что-то вроде этого.

Сначала в вашем контроллере вы хотите получить все записи о доходах.

def index
  @earnings = Earning.all
end

Затем, по вашему мнению, вы перебираете все @earnings и выведите earnings.money в качестве единого значения для каждой вашей записи.

Если вы хотите получить общую сумму всех доходов , вы можете сделать @earnings.sum(:money), что в основном будетдать вам единственное значение как общую сумму всех доходов - Earning.all.

0 голосов
/ 09 октября 2019

Таким образом, вы не используете @earnings надлежащим образом, по вашему мнению, вы используете доход как совокупность объектов, но в контроллере @earnings определяются как сумма денег, но вы ее не используете, если вам действительно нужноВ этой сумме вы можете установить две переменные экземпляра: fiest @earnings = Earning.all и вторую @money_sum = Earnings.sum (: money), а затем вы можете отобразить где-нибудь свою сумму как = @money_sum, затем вы можете выполнить итерацию по @earningsсоздать ссылку на ваш взгляд

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...