Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html Rails div不渲染?_Html_Ruby On Rails_Ruby - Fatal编程技术网

Html Rails div不渲染?

Html Rails div不渲染?,html,ruby-on-rails,ruby,Html,Ruby On Rails,Ruby,我有一个简单的应用程序,我遵循教科书。这是一个商店应用程序,在页面的左侧显示一个购物车。然而,当购物车是空的,它应该是隐藏的。所以我编写了一个helper函数,在购物车为空时隐藏购物车。这在html中已经足够了,但这本书就是这样展示的。它主要起作用。如果我清空购物车,它将停止显示,但是当我第一次打开页面时,购物车将不可见,即使它不是空的!向其中添加一个项目将显示它 代码如下: application.html.erb <div id="cart"> <% if

我有一个简单的应用程序,我遵循教科书。这是一个商店应用程序,在页面的左侧显示一个购物车。然而,当购物车是空的,它应该是隐藏的。所以我编写了一个helper函数,在购物车为空时隐藏购物车。这在html中已经足够了,但这本书就是这样展示的。它主要起作用。如果我清空购物车,它将停止显示,但是当我第一次打开页面时,购物车将不可见,即使它不是空的!向其中添加一个项目将显示它

代码如下:

application.html.erb

<div id="cart">
        <% if @cart %>
         <% hidden_div_if( @cart.line_items.empty?, id:"cart" ) do %>
             <%= render @cart %>
         <% end %>
      <%end%>
</div> 
在我放置调试器语句的地方,我检查了条件,它说它是false。因此,我认为这是html文件的一个问题。控制器设置手推车,并在顶部显示此代码

      include CurrentCart
  before_action :set_cart
所以,我不确定为什么它会在按下按钮后显示,而不是在初始页面加载时显示。有什么想法吗


谢谢

您需要从
开始,您首先有
@cart
吗?是不是
nil
?生成的HTML是什么样子的?顺便说一句,你不需要
id:“cart”
,因为这会给你两个
元素,这不是有效的HTML,请为内部
(或外部)选择另一个
id
。在检查线程之前,我刚刚意识到这一点!哈哈。我把自己弄糊涂了,因为我看到if语句只是在使用。谢谢
      include CurrentCart
  before_action :set_cart
<%= hidden_div_if(@cart.line_items.empty?, id: "cart") do %>