ruby-on-rails - 从表单标签访问 params 值以显示视图
问题描述
这是一个非常基本的问题:我想在我的视图中显示数量值,来自 form_tag 输入,但我有哈希值。
<%= form_tag order_items_path do %>
<%= hidden_field_tag 'product_id', @product.id %>
<%= number_field(:quantity, in: 1.0..20.0, step: 1) %>
<%= submit_tag 'Add to cart', class: 'btn btn-primary' %>
<% end %>
order_items 控制器
定义创建
@product = Product.find(params[:product_id])
if current_user.orders.find_by(state: 'pending')
OrderItem.create!(product: @product, quantity: (params[:quantity]), order: current_user.orders.find_by(state: 'pending'))
else
order = Order.create!(user: current_user, state: 'pending')
OrderItem.create!(product: @product, quantity: (params[:quantity]), order: current_user.orders.find_by(state: 'pending'))
end
respond_to do |format|
format.html { redirect_to root_path }
format.js
end
当我尝试在我的订单视图中显示它时,我有什么:
<% @order.order_items.each do |item| %>
<div id="order-item-id-<%=item.id%>">
<div class="container mt-4 d-flex justify-content-between align-items-center" >
<div>
<%= item.product.name %>
<%= item.quantity %>
</div>
是来自 form_tag 的哈希:
埃塞俄比亚 {"{:in=>1.0..20.0, :step=>1}"=>"1"}
我尝试了很多解决方案,例如数量:(params[:quantity].value),但没有任何效果。有人帮忙吗?
解决方案
好像你误number_field
用了number_field_tag
. 只是改变
<%= number_field(:quantity, in: 1.0..20.0, step: 1) %>
至
<%= number_field_tag(:quantity, nil, in: 1.0..20.0, step: 1) %>
请注意,nil
这是该字段的初始值,您可能希望使用1
其他数字来代替。
推荐阅读
- javascript - JavaScript 基于浏览器语言重定向用户(Chrome 扩展)
- xpath - 如何在 XPath 中使用多个 OR 运算符
- javascript - 从状态中引用状态 - React js
- react-native - 第一个 Expo 项目在 npm start 后抛出错误
- c# - 在路由中隐藏 URL 数据/值
- android - 渲染到屏幕外视图并保存屏幕截图
- c# - 如何解析看起来像这样的 DateTime:'Date(1543396029630)'
- c# - 构建复杂数据类
- css - 整个站点丢失的容器宽度
- android - Android:是否可以将存储在 Google Cloud Storage 中的图像分享到 Instagram?