2012-02-15 41 views
0

我想使用RoR构建一个超级简单的商店,并在“Agile Web Developmenet with Rails”一书中找到了一个很好的例子。我拥有的是商店索引页上的产品清单,并且每个产品都有一个按钮可将产品添加到购物车。就像这样:Rails和JavaScript?:在索引页中获取select_tag值

<% @products.each do |product| %> 
    <%= product.name %><br /> 
    <%= button_to 'Order', add_to_cart_store_index_path(:id => product), :remote => true %> 
<% end %> 

我想要做的是增加一个小的下拉菜单供用户选择他们想订购的项目数:按钮

<%= select_tag("quantity[#{product.id}]", options_for_select(['1', '2', '3', '4'], '1')) %> 

点击需要从select_tag菜单中传递选定的值。

<%= button_to 'Order', add_to_cart_store_index_path(:id => product, :quantity => ?????), :remote => true %> 

我是新来编程,但我想我需要使用Javascript/jQuery的这一点,像#quantity [#{} product.id]。VAL(),但我不能得到它工作。

我希望你能帮忙。如果你看到更好的实现方式,请让我知道。谢谢。

回答

0

与其试图按照这种方式实现添加到购物车按钮,我会将其作为表单,以便它可以一起工作并在不写javascript的情况下提交数量。

<%= form_tag add_to_cart_store_index_path(:id => product), :method => :post do %> 
    <%= select_tag :quantity, options_for_select(['1', '2', '3', '4'], '1' %> 
    <%= submit_tag 'Add to cart' %> 
<% end %> 

作为一个侧面说明,它可能是一个很好的锻炼通过创建自己的简单商店下你的书来学习编程,但如果你打算做任何事情更复杂或生产对得起它会为你节省大量的时间尝试像Spree http://github.com/spree/spree这样的解决方案,而不是重新发明轮子。

+0

谢谢JDutil,起初我觉得在一页上有许多“迷你表格”似乎有点奇怪,但这实际上是非常有意义的。我看到你关于Spree的观点,这是一款漂亮的产品,但对我的需求来说太复杂了。 – 2012-02-16 02:03:03