ruby on rails 使用text存储hash类型的数据 Use text filed to store the hash map

来源:互联网 发布:mysql没有密码如何连接 编辑:程序博客网 时间:2024/06/04 19:12




在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, :component_type_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


0 0
原创粉丝点击