Вы должны сделать некоторые изменения:
Просмотр:
<%= label_tag 'Remind' %>
<%= f.number_field :remind %>
<%= select_tag :select_conv, options_for_select([['Day', 1], ['Week', 7], ['Month', 30]]) %>
Из представления он вернет хеш со значениями ввода каждого пользователя. Итак, для этого примера он вернет:
params = { remind: user_input, select_conv: user_input }
Вы можете поймать это в вашем контроллере с помощью метода item_params, но
Вы должны указать параметры, которые вы хотите в своем методе, поэтому ваш item_params должен быть:
Контроллер:
def create
add = Item.new(item_params)
if add.save
flash[:notice] = ''
redirect_to items_path
else
redirect_to new_item_path
flash[:error] = ''
end
end
private
def item_params
params.require(:item).permit(:itemname, :amount, :bbf, :remind, :select_conv) # << update here
end
В вашей модели вы можете получить доступ к значениям, сохраненным в item_params, с их именами, как вы это сделали с self.remind , вы можете вызвать его с помощью self.select_conv .
Модель:
# self.select_conv can be used now.
def convert_to_d
convert = self.remind * self.v_convertor
self.assign_attributes(remind: convert)
end
Вы также можете использовать некоторые проверки в вашей модели, чтобы гарантировать целостность данных пользователя. Для получения дополнительной информации о проверках .