首页 > 解决方案 > Rails js.erb 没有添加 css.animate 但没有错误

问题描述

我一直在阅读一本较旧的 Rails 书籍,并尝试随时更新代码。这本书适用于 Rails 3,但我使用的是 3.2,这有一些差异,我希望能得到帮助!该项目围绕一个商店应用程序展开,我已经设法完成了大部分工作并使其正常工作,除了一件让我拔掉头发的作品!

有问题的部分包括将 css.animate 添加到购物车部分。这本书使用了 js.jrs,但我的 rails 版本不支持,所以我使用了一个 js.erb 文件,如下所示:

$('#cart').html('<%= escape_javascript(render(@cart))%>');

$('#current_item').css({'background-color':'#88ff88'}).
animate({'background-color':'#114411'}, 1000);

第一件工作正常,用于显示和更新购物车,但是,我似乎无法让第二件工作。我一直在谷歌搜索,发现很多人似乎对该代码没有任何问题,所以我认为它一定与我的 rails/setup 版本有关。我怀疑这个问题与我的 line_item 视图如何尝试访问 current_item 变量有关。但我不太确定如何解决这个问题。我在下面包含了更多代码以供参考:

_line_item.html.erb:

<% if line_item == @current_item %>
  <tr id="current_item">
  <% else %>
    <tr>
    <% end %>
    <tr>
      <td><%= line_item.quantity %>&times;</td>
      <td><%= line_item.product.title %></td>
      <td class="item_price"><%= number_to_currency(line_item.total_price) %></td>
    </tr>

line_item_contoller:

def create
@cart = current_cart
product = Product.find(params[:product_id]) @line_item = @cart.add_product(product.id)
respond_to do |format| if @line_item.save
      format.html { redirect_to(store_url) }
      format.js   { @current_item = @line_item }
      format.xml  { render :xml => @line_item,
        :status => :created, :location => @line_item }
else
format.html { render :action => "new" } format.xml { render :xml => @line_item.errors,
        :status => :unprocessable_entity }
        end 
    end
end

我不太确定如何解决这个问题,所以任何帮助都将不胜感激。我提出了一些人们在同一个项目中运行的例子,例如这里:http: //intertwingly.net/projects/AWDwR4/checkdepot-225-40/section-11.3.html#cmd5

虽然我复制了这个项目,但它仍然没有工作,这就是为什么我认为它主要是与我的 rails 版本的配置差异。

这里有人在 github 上成功完成了同一个项目: https ://github.com/diegonetto/Learning-Ruby-on-Rails/tree/master/app/views/line_items

我知道 attr_accessible 是在这门课程之后引入的,这是我在此过程中必须满足的。这就是让我倾向于访问问题的原因。

提前感谢您提供的任何提示!

标签: cssruby-on-railsruby

解决方案


在您为_line_item.html.erb部分显示的代码中,看起来您有一个额外的<tr>开场白,就在下面<% end %>,这样就可以把事情搞砸了。这可能是问题的一部分吗?


推荐阅读