Присвоение переменной целочисленному преобразованному параметру и использование в файле html.erb
В основном я хочу использовать параметры для хранения значений этих полей ввода в виде целых чисел
<input type="number" name="happyquant" min="1" max="5" value="1" />
<input type="number" name="skyquant" min="1" max="5" value="1" class="bot"/>
Этот код находится в другом файле html.erb, поэтому, когда я нажимаю submit, я хочу, чтобы он передавал значения. Извините, что не уточнил это ранее. Кстати, сайт, на котором я его запускаю, - http://ipt-dynaman.c9.io/. Мой контроллер
def receipt
render layout: 'cart'
params[:skyquant] = params[:skyquant].to_i
params[:happyquant] = params[:happyquant].to_i
a = params[:skyquant]*50
end
Где я хочу показать это
<div class="receipt-row">
<% a %>
</div>
Честно говоря, я даже не знаю, что я делаю, но я хочу в основном научиться использовать такие переменные в файлах html.erb. В частности, используя это в качестве примера.
2 ответа
Чтобы вы могли использовать переменную внутри html.erb
файл, вы должны объявить переменную как переменную экземпляра, чтобы отобразить что-то из переменной, вы должны использовать <%= ruby_code %>
вместо <% ruby_code %>
def receipt
render layout: 'cart'
params[:skyquant] = params[:skyquant].to_i
params[:happyquant] = params[:happyquant].to_i
@a = params[:skyquant]*50
# variable with @ in front of name, are instance variables
end
<div class="receipt-row">
<%= @a %>
</div>
Когда вы используете <% %>
он оценивает код ruby, но не отображает то, что возвращает этот код, когда вы используете <%= %>
будет отображаться результат кода, значение вашего дела из @a
А является локальной переменной. Они существуют только в пределах своей области (текущий блок)
@a является переменной экземпляра и доступна всем методам в классе.
В Ruby on Rails - объявление ваших переменных в контроллере как переменных экземпляра (@a) делает их доступными для вашего просмотра.
читайте больше здесь: http://strugglingwithruby.blogspot.dk/2010/03/variables.html