1

我在我的电子商务网站上工作并选择了 Spree(Ruby on Rails),尽管我使用 PHP 和 .NET。到目前为止,它开箱即用,令人着迷,昨天我有兴趣在主页上添加特色产品。

大礼包版本:1.3.2

为此,我对 Spree 做了一些更改。它们如下:

  1. 迁移 -is_featured:boolean向 spree_products 表添加字段
  2. bundle exec rake db:migrate
  3. 扩展Spree::Product
  4. 用于向视图Deface添加复选框。edit

就我而言,1、2、3 运行良好,因为我已经通过rails console. 据我了解,当我尝试添加复选框时,错误出现在第四步。

overrides/featured_checkbox_admin_product.rb

Deface::Override.new(
  :virtual_path   => "spree/admin/products/_form",
  :name           => "featured_checkbox_admin_product",
  :insert_bottom  => "[data-hook='admin_product_form_additional_fields']",
  :text           => "
    <%= f.field_container :is_featured do %>
      <%= f.label :is_featured %>
      <%= f.check_box :is_featured %> 
    <%= end %>"
)

我是 Rails 新手,我在工作时正在查看文档。但据我了解,代码是正确的。这是生成的错误。

/home/ziyan/.rvm/gems/ruby-2.0.0-p0/gems/spree_core-1.3.2/app/views/spree/admin/products/_form.html.erb:141: syntax error, unexpected keyword_end
...');@output_buffer.append= ( end );@output_buffer.safe_concat...
...                               ^
/home/ziyan/.rvm/gems/ruby-2.0.0-p0/gems/spree_core-1.3.2/app/views/spree/admin/products/_form.html.erb:153: syntax error, unexpected keyword_ensure, expecting ')'
/home/ziyan/.rvm/gems/ruby-2.0.0-p0/gems/spree_core-1.3.2/app/views/spree/admin/products/_form.html.erb:155: syntax error, unexpected keyword_end, expecting ')'
Extracted source (around line #141):

138:     <%= f.field_container :is_featured do %>
139:       <%= f.label :is_featured %>
140:       <%= f.check_box :is_featured %> 
141:     <%= end %>
142: </div>
143: 
144:   <div class="clear"></div>

我的理解是Deface奏效了。但是我输入的代码是导致问题的代码。

将不胜感激任何帮助。

提前致谢。

4

1 回答 1

2

从最后一行删除不必要=的,只留下

<% end %>

它应该可以工作。

于 2013-07-26T18:13:45.493 回答