Ruby on rails 隐藏rails中的按钮(rails敏捷Web开发手册)

Ruby on rails 隐藏rails中的按钮(rails敏捷Web开发手册),ruby-on-rails,button,controller,agile,hidden,Ruby On Rails,Button,Controller,Agile,Hidden,这是我的第一个问题,所以我希望我能尽可能具体,但不要太苛刻 我正在使用Rails进行敏捷Web开发,对编程非常陌生 当我在订单/新页面上时,我想隐藏一个“结帐”按钮,这样它就不会对用户的购买造成任何不良影响 目前,我并不真正理解实例变量是如何工作的,因为无论我在视图中还是在orderscontrollernew中声明实例变量,它都会验证为true 这似乎是因为当我在视图中使用instance变量隐藏带有hidden_div_ifcondition==true的div时,按钮总是被隐藏 不仅如此,

这是我的第一个问题,所以我希望我能尽可能具体,但不要太苛刻

我正在使用Rails进行敏捷Web开发,对编程非常陌生

当我在订单/新页面上时,我想隐藏一个“结帐”按钮,这样它就不会对用户的购买造成任何不良影响

目前,我并不真正理解实例变量是如何工作的,因为无论我在视图中还是在orderscontrollernew中声明实例变量,它都会验证为true

这似乎是因为当我在视图中使用instance变量隐藏带有hidden_div_ifcondition==true的div时,按钮总是被隐藏

不仅如此,当我这样做的时候:

<%= 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 %>
2012年11月13日20:33:40+0000时开始在127.0.0.1上使用GET/assets/logo.png 已送达资产/logo.png-304未修改1ms [2012-11-13 20:33:40]警告无法确定响应正文的内容长度。 设置响应的内容长度或设置Responsechunked=true * 34 37 * /订单/新订单

于2012年11月13日20:33:49+0000开始获得/订单/新订单127.0.0.1 OrdersControllernew作为HTML处理 ←[1m←[36mCart负载1.0ms←[0m←[1选择手推车。*从手推车中选择手推车 .id=?限制1←[0m[[id,63]] ←[1m←[35米1.0毫秒←[0m从第_行项目中选择计数*,其中第_行项目.c 艺术设计=63

问题是缺少=。请改为执行

您希望在调用视图的方法上设置该变量。在本例中,它是OrdersController中的新方法

编辑:

将其添加到隐藏的div中,只是为了查看它是否有助于查找要将属性设置为的元素

<%= hidden_div_if(@hide_checkout_button, id: 'cart') do %>
如果这样不行,就这样做吧

<% if @hide_checkout_button %>
  <td><%= button_to "Checkout", new_order_path, :method => :get %></td>
<% else %>
  <td><%= button_to 'Empty cart', cart, :method => :delete, :confirm => 'Are you sure?' %></td>
<% end %>

这只是一个小问题。敏捷是一种开发方法,而不是rails技术。它决定了您如何处理开发问题,但与您提供的代码是否有效无关:。此外,提示并非100%准确:实例变量可用,局部变量可用not@gbt,它的标题是book,这就是为什么它被大写而不是我的描述-感谢您的评论Hi,感谢您的回复,这=使它们一直出现。我认识到这是一个错误,但还有一些事情我做错了。我在orderscontrollernew中有实例变量,在按钮周围的hidden_div_if方法中有实例变量。但是“签出”按钮在签出页面中仍然可见,在我获得新的\u order\u path后,新的\u order\u path将点击新方法,然后点击视图。为了测试您是否有正确的值,请在div之前在视图中打印它。显示该方法。这是我在按钮之间放置的内容,我得到了一个空白。它还在IDE中显示[Swiggly grey underline]找不到新的订单路径,但我愚蠢地忽略了这一点,因为Rubymine IDE会说各种我不理解的事情,并且它没有停止任何保存到订单或链接到我浏览器中的新订单页面的应用程序的操作。有什么想法吗?我不明白为什么它无法在orderscontroller中找到新方法,如果这是问题的话lem…这是此按钮在浏览器中创建的url,它有效地链接到页面。请确保您在config/routes.rb中有资源订单。您不能忽略该错误消息。这意味着它找不到路径。
<%= hidden_div_if( @hide_checkout_button == true ) do %>
  <td><%= button_to "Checkout", new_order_path, :method => :get %></td>
<% end %>
<%= hidden_div_if( @hide_checkout_button) do %>
   #...
<% end %>
def new
  @hide_checkout_button = true
end
<%= hidden_div_if(@hide_checkout_button, id: 'cart') do %>
def hidden_div_if(condition, attributes = {}, &block 
  if condition
    attributes["style"] = "display: none" 
  end
  content_tag("div", attributes, &block)
end
<% if @hide_checkout_button %>
  <td><%= button_to "Checkout", new_order_path, :method => :get %></td>
<% else %>
  <td><%= button_to 'Empty cart', cart, :method => :delete, :confirm => 'Are you sure?' %></td>
<% end %>