繁体   English   中英

将HTML输入从视图传递到Rails中的控制器

[英]passing html input from view to controller in rails

我的仓库: https : //github.com/Gtar69/artstore_hw2 =>这是我的购物车项目

现在,我想在carts / index.html中输入一个值来更改cart_item的数量。

不知道如何在Rails中做到这一点

在典型的PHP中,就像

<form action="backend.php"> 
  <td><input type="number" name= "kobe"> 
    <input type="submit" value="submit/>
  </td>

但是,我想简化编码结构而不是使用表单。

我的想法是=> view / carts / index.html

<tbody>
  <% current_cart.items.each do |product| %>
    <tr>
      <td><%= render_product_photo(product.default_photo) %></td>

      <td> 
        <%= link_to(product.title, admin_product_path(product)) %>
      </td>

      <td><%= product.price %></td>

      <td>
         <input type="number" name= "kobe" value = <%= CartItem.where(product_id: product.id).take!.count%>>
         <input type="submit" value="shala">
      </td>

      <td><%= link_to("改變數量", change_item_quantity_carts_path(:product_id => product.id, :count => 2),
                      :method => :post , :class => "btn btn-primary btn-lg btn-danger") %></td>

      <td><%= link_to("刪除物品", delete_item_carts_path(:product_id => product.id) , :method => :post, :class => "btn btn-primary btn-lg btn-danger") %></td>
    </tr>
  <% end %>
</tbody>

将“ kobe”变量传递给carts_controller

def change_item_quantity
  product = Product.find(params[:product_id])
  # :count => 2  
  current_cart.change_cart_item_quantity(product ,params[:kobe])
  redirect_to carts_path
end   

并在model / cart.rb中进行后端计算

def change_cart_item_quantity(product, count)
  #改變cart_item中的數量
  c= CartItem.where(product_id: product.id).take!
  c.count = count
  c.save
end  

我仍在努力如何将“神户”传递给控制器​​。 有任何想法吗?

提前致谢。

请参阅guides.rubyonrails.org/form_helpers.html

我用了

<td>
              <%= form_tag("/carts/change_item_quantity", method: "post") do%>
                <%= label_tag(:q, "改變數量") %>
                <%= number_field_tag(:kobe, CartItem.where(product_id: product.id).take!.count)%>
                <%= hidden_field_tag(:product_id, product.id)%>
                <%= submit_tag("Change") %>
                <% end %>
            </td>

这样,我可以将所需的任何参数传递给控制器​​。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM