這是我的第一個問題,所以我希望我可以儘可能具體,但不要苛刻。滑軌中隱藏按鈕(使用Rails進行敏捷Web開發)
我正在通過Rails進行敏捷Web開發,並且對編程非常新穎。
我想在訂單/新頁面上隱藏「結帳」按鈕,以便它無法爲用戶購買任何令人討厭的內容。
目前,我不太瞭解實例變量是如何工作的,因爲無論我在哪裏聲明實例變量,在視圖中還是在orderscontroller#new中,它總是驗證爲true。
這似乎是這樣的,因爲當我在視圖中使用實例變量來隱藏div(使用hidden_div_if(condition == true))時,按鈕總是隱藏起來!
不僅如此,但是當我做:
<%= hidden_div_if(@hide_checkout_button == false) do %>
<td><%= button_to 'Empty cart', cart, :method => :delete,
:confirm => 'Are you sure?' %></td>
<% end %>
<%= hidden_div_if(@hide_checkout_button == true) do %>
<td><%= button_to "Checkout", new_order_path, :method => :get %></td>
<% end %>
兩個按鈕獲得隱患!怎麼可能!?!
在這個例子中,我把意見中的變量聲明\ orders_form.html.erb:
<%= @hide_checkout_button = true %>
<%= form_for(@order) do |f| %>
<% if @order.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@order.errors.count, "error") %>
prohibited this order from being saved:</h2>
<ul>
<% @order.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
...
這裏有一個討論,論壇,對於這個問題的解決方案,但他們沒有對我的工作我不知道爲什麼:http://pragprog.com/wikis/wiki/Pt-G-2/version/35
這裏是問題本身:如果您單擊而 側邊欄Checkout按鈕,會發生什麼
結帳屏幕已經顯示?你能找到一種方法來在這種情況下禁用 按鈕嗎? (提示:在控制器 設置變量在佈局和諧音,以及在直接呈現 模板可供選擇。)
如果您需要更多的信息來幫助請問,我不太清楚如何提供很多細節或什麼信息是重要的。
在此先感謝:-)
def new
@cart = current_cart
if @cart.line_items.empty?
redirect_to store_url, :notice => "Your cart is empty"
return
end
puts 34
@hide_checkout_button = true
@order = Order.new
puts 37
respond_to do |format|
format.html # new.html.erb
format.json { render json: @order }
end
end
入門GET 「/assets/logo.png」 爲127.0.0.1在二零一二年十一月十三日20時33分四十秒+0000 擔任資產/ logo.png - 304未修改(1ms) [2012-11-13 20:33:40] WARN無法確定響應主體的內容長度。響應的 集內容長度或設置迴應#分塊=真 * * /命令/新
發起者GET 「/命令/新的」 127.0.0.1在二〇一二年十一月十三日20:33:49 +0000 OrdersController處理#新的HTML ←[1m←[36mCart Load(1.0ms)←[0m←[1mSELECT「carts」。* FROM「carts」WHERE「carts 」。「id 「=? LIMIT 1←[0m [[「id」,63]] ←[1m←[35m(1.0ms)←[0m SELECT COUNT(*)FROM「line_items」WHERE「line_items」。「c art_id」= 63
只是一小塊骨頭挑。敏捷是一種開發方法,不是軌道技術。它決定了你如何處理開發問題,但與你提供的代碼爲什麼工作或不工作沒有任何關係。 – gbtimmon
此外提示不是100%準確的:'實例變量'是可用的,'局部變量'不是 –
@gbt,它的書名(這就是爲什麼它是大寫的)不是我的描述 - 感謝評論 –