美文网首页我爱编程
购物商城后台增加商品详情并使用富文本编辑器

购物商城后台增加商品详情并使用富文本编辑器

作者: 那一份美好 | 来源:发表于2018-02-10 15:53 被阅读0次

一、增加栏位

1.修改model,在 product中,增加一个detail栏位
rails g migration add_detail_to_products detail:text

rake db:migrate

2.修改app/controllers/admin/products_controller,在最后增加detail栏位

def product_params
    params.require(:product).permit(:title,:title, :description, :quantity, :price, :image, :detail)
end

3.修改views

  • 修改app/views/admin/products/new.html.erb,增加
  <div class="group">
            <%= f.input :detail, :label => "商品详情" %>
    </div>
  • 修改app/views/admin/products/edit.html.erb,增加
    <div class="group">
        <%= f.input :detail,  :label => "商品详情" %>
    </div>
  • 修改app/views/products/show.html.erb,增加
<!-- 商品详情区域>
    <div class="container">
      <div class="col-md-12 product-detail">
        <!-- 导航栏 -->
          <div class="row">
           <ul class="nav nav-tabs nav-justified">
               <li class="active">
                <a href="#tab_default_1" data-toggle="tab">商品详情</a>
               </li>
               <li>
                <a href="#tab_default_2" data-toggle="tab">用户评价</a>
               </li>
            </ul>
          </div>
          <div class="tab-content">
          <!-- 商品详情区域 -->
            <div class="product-detail-box row tab-pane active" id="tab_default_1">
            <%= simple_format(@product.detail) %>
            </div>
          <!-- 商品评论区域 尚未添加-->
         </div>
      </div>
   </div>

4.修改css,修改app/assets/stylesheet/application.scss, 增加
/leo-商品详情区域样式

.product-detail {
        margin: 1.1em 0 3em;
}
.product-detail-box {
        border: 1px solid #e3e3e3;
        border-top: none;
        padding: 2em 1.2em;
        letter-spacing: 0.1em;
        text-align: center;
        line-height: 1.6em;
img {
        max-width:100%;height:auto;             //重要样式代码,需要配合application.js的自适应代码块一起使用
    }
}

二、添加富文本编辑器

1.安装gem

gem 'bootstrap-wysihtml5-rails'

bundle install
详见:https://github.com/Nerian/bootstrap-wysihtml5-rails

2.修改
需要修改的assets文件app/assets/stylesheets/applicaiton.scss,添加

@import "bootstrap-wysihtml5/bootstrap3-wysihtml5";

app/assets/javascripts/application.js添加

//= require bootstrap
//= require bootstrap-wysihtml5
//= require bootstrap-wysihtml5/locales/zh-CN

// 图片自适应大小支持代码块
// 在product/show.html.erb的页面中,对img图片用这一格式进行校正
// 让图片在大于div宽度时自动缩小不而溢出,确保版面的公正和美观
function ReImgSize(){
  for (j=0;j<document.images.length;j++)
  {
    document.images[j].width=(document.images[j].width>420)?"420":document.images[j].width;
  }
}

3.修改views

  • 修改app/views/admin/products/new.html.erb,增加 as: :wysihtml5
      <div class="group">
          <%= f.input :detail, as: :wysihtml5,:label => "商品详情" %>
      </div>
  • 修改app/views/admin/products/edit.html.erb,增加
     <div class="group">
       <%= f.input :detail, as: :wysihtml5, :label => "商品详情" %>
     </div>
image

相关文章

网友评论

    本文标题:购物商城后台增加商品详情并使用富文本编辑器

    本文链接:https://www.haomeiwen.com/subject/vvyttftx.html