zoukankan      html  css  js  c++  java
  • 使用text存储hash类型的数据 Use text filed to store the hash map

    在component表里用text类型的字段存储hash数据

    (1)新建字段 ,这是migration的内容

    class AddHintsToComponents < ActiveRecord::Migration[5.0]
      def change
        add_column :components, :hints, :text
      end 
    end

    (2)controller

      def update
        if @component.update!(component_params)
          redirect_to @component, notice: 'Component was successfully updated.'
        else
          render :error
        end 
      end 
        def component_params
          params.require(:component).permit(:release_id, 
                                            :remark, component_ids: [], hints: [:left, :mid, :right])
        end

    (3)model

    class Component < ApplicationRecord
      serialize :hints
           
      def after_initialize
          self.hints ||= {}
      end

    (4)_component.html.erb

      <td>
        left:<%= component.hints["left"] %> |
        mid:<%= component.hints["mid"] %> |
        right:<%= component.hints["right"] %>
      </td

    (5)_form.html.erb

      <%= f.fields_for :hints do |h| %>
        <div class="form-group">
          <%= f.label 'hints left', class: 'col-sm-2 control-label' %>
          <div class="col-sm-4">
            <%= h.text_field :left, class: 'form-control',
              value: (@component.hints && @component.hints.key?("left") ? @component.hints["left"] : "") %>
          </div>
        </div>
    
        <div class="form-group">
          <%= f.label 'hints mid', class: 'col-sm-2 control-label' %>
          <div class="col-sm-4">
            <%= h.text_field :mid, class: 'form-control',
              value: (@component.hints && @component.hints.key?("mid") ? @component.hints["mid"] : "") %>
          </div>
        </div>
    
        <div class="form-group">
          <%= f.label 'hints right', class: 'col-sm-2 control-label' %>
          <div class="col-sm-4">
            <%= h.text_field :right, class: 'form-control',
              value: (@component.hints && @component.hints.key?("right") ? @component.hints["right"] : "") %>
          </div>
        </div>
      <% end %>

    参考资料

    http://vladexologija.blogspot.com/2012/12/rails-attribute-serialization_18.html

    http://guides.rubyonrails.org/action_controller_overview.html#strong-parameters

  • 相关阅读:
    Web前端笔记和简历模板
    三种 Loading 制作方案
    注册中心之健康检测机制
    HTTPS与加密
    多线程-JUC
    date日期类型
    spring配置文件约束
    Tomcat web.xml 中的listener、 filter、servlet 加载顺序
    java 日志框架总结
    mysql常用命令
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/5826660.html
Copyright © 2011-2022 走看看