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

  • 相关阅读:
    php-Zip打包文件
    PHP命令行类库 climate
    vim 添加块注释
    冒泡排序|插入排序
    PHP-SeasLog安装和使用
    链表
    多线程上下文切换
    竞态与线程安全
    线程的生命周期
    线程创建的两种方法
  • 原文地址:https://www.cnblogs.com/iwangzheng/p/5826660.html
Copyright © 2011-2022 走看看