我在我的电子商务网站上工作并选择了 Spree(Ruby on Rails),尽管我使用 PHP 和 .NET。到目前为止,它开箱即用,令人着迷,昨天我有兴趣在主页上添加特色产品。
大礼包版本:1.3.2
为此,我对 Spree 做了一些更改。它们如下:
- 迁移 -
is_featured:boolean
向 spree_products 表添加字段 - bundle exec rake db:migrate
- 扩展
Spree::Product
类 - 用于向视图
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
奏效了。但是我输入的代码是导致问题的代码。
将不胜感激任何帮助。
提前致谢。