Сохранение в базу данных в Ruby на Rails без печати? - PullRequest
1 голос
/ 25 мая 2020

Я новичок в Ruby on Rails, и я работаю над финансовым приложением, чтобы объединить все мои расходы. Я собираю все свои данные через форму, а затем показываю их в другом файле с именем show. html .erb. Я хочу сложить все свои расходы в show. html .erb, и до сих пор мне удавалось сделать это следующим образом:

<strong>Total:</strong> 
<td><%= @article.total = (@article.checking_accounts + @article.savings_accounts - @article.debt) %></td>
<td><%= @article.save %></td>

Однако, поскольку команда .save возвращает логическое значение, Я получаю свой результат на своей веб-странице, за которым следует «true», то есть «544 true», а не просто 544. Как мне сохранить в базе данных без печати на моей веб-странице?

Ответы [ 2 ]

2 голосов
/ 25 мая 2020

Как уже было сказано, вы должны стараться иметь наименьшее количество c logi в ваших представлениях. Обычно сохранение данных выполняется действием Create в контроллере. Итак, в вашем контроллере должно быть что-то вроде этого:

# articles_controller.rb
...
def create
  @article = Article.find(params[:id])
  @article.total = @article.checking_accounts + @article.savings_accounts - @article.debt
  @article.save
end

def show
  @article = Article.find(params[:id])
end
...

И это на ваш взгляд:

# show.html.erb
...
<strong>Total:</strong> 
<td><%= @article.total %></td>
...
2 голосов
/ 25 мая 2020

Вы не должны помещать @article.save в свое представление, это должно быть в вашем контроллере или обратный вызов в вашей модели, но, поскольку вы только начинаете, я думаю, для быстрого временного решения вы можете сделать это:

<% @article.total = (@article.checking_accounts + @article.savings_accounts - @article.debt) %>
<% @article.save %>

<strong>Total:</strong> 
<td><%= @article.total %></td>

Вы можете использовать <% ...%>, если хотите, чтобы процесс запускался, но не хотите, чтобы он печатался. Вы можете использовать <%= ... %>, если хотите распечатать значение.

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