Я новичок в рельсах, и я хочу, чтобы мой контроллер обновил поле label/html в поле зрения с переменной @msg, созданной из действия. Прямо сейчас у меня есть,Rails: как отправить строку из контроллера для просмотра?
Просмотр формы:
<%= form_tag({controller: "home", action: "drawMoney"}) do %>
<h1> Draw Out </h1>
<%= number_field_tag :draw, min: 1, max:1000 %>
<%= date_field_tag :customDate %>
<%= submit_tag "Save" %>
<% end %>
<p>
<%= "#{@msg}" %>
</p>
Контроллер
def drawMoney
@drawAmount = params[:draw]
@credit = Credit.getCredit('1')
@updateAmount = updatePrincipal(@credit.principal, @drawAmount)
@newLimit = updateLimit(@credit.currLimit, @drawAmount)
@msg = "success!"
if (@transaction = Transaction.create(userId: @credit.userId, date: params[:customDate], OPB: @credit.principal, amount: @drawAmount).valid?)
@credit.update(principal: @updateAmount, currLimit: @newLimit)
@transaction = Transaction.create(userId: @credit.userId, date: params[:customDate], OPB: @credit.principal, amount: @drawAmount)
else
@msg = "not valid"
end
redirect_to action: "index"
end
Я прочитал рубин документы и юность учебник, пытался ставить @msg в представлении вместо и @msg в HTML и т. д., но это ничего не печатает в представлении и не может найти ответы на поиск. Любая помощь будет оценена!
EDIT:
Я попытался изменить к <% = @msg%>, но он не работает .. поэтому метод вызывается, когда я нажимаю на кнопку отправки, и до тех пор не @msg пример. Может быть, это проблема?
Это потому, что вы перенаправлении. Он теряет все ваши переменные. Используйте вспышку как @imechemi предлагает –