2016-11-16 65 views
0

我想在我的仪表板上的列表视图中执行当前编号,而不是正确的数据库标识字段。为此,我从rails_admin使用formatted_value。唯一的是,我想在表单呈现后重置该值,因为在我重新加载页面后,该ID不断递增,并且永远不会回到0.我如何在rails admin的字段中重置formatted_value。到目前为止,我想这没有多少运气:重置rails_admin字段值

config/initializers/rails_admin.rb

currentId = 0 
    # Fields in Projects list 
    config.model 'Project' do 
    list do 
     field :id do 
     formatted_value do 
      currentId += 1 
     end 
     end 
     field :year 
     field :title 
     field :intro 
     field :description 
     field :confidential 
     field :star 
     field :image 
    end 
    currentId = 0 
+0

目前还不清楚我是什么你问。 –

+0

@Зелёный我现在更新了更多的细节问题。我只是想在页面加载并重新显示所有这些条目时重置该字段 –

+0

您不能_reset_ ruby​​变量_after_表单被呈现后。使用JavaScript来操纵呈现的HTML。 –

回答

0

[解决]

我留在初始化的field :id和overrid app/views/rails_admin/main/index.html.haml with

%th.last.shrink 
    %tbody 
    - currentId = 1 
    - @objects.each do |object| 
     %tr{class: "#{@abstract_model.param_key}_row"} 
     %td 
      = check_box_tag "bulk_ids[]", object.id, false 
     - if @other_left_link ||= other_left && index_path(params.except('set').merge(params[:set].to_i != 1 ? {set: (params[:set].to_i - 1)} : {})) 
      %td.other.left= link_to "...", @other_left_link, class: 'pjax' 
     - properties.map{ |property| property.bind(:object, object) }.each do |property| 
      - if property.name.to_s == "id" 
      - value = currentId 
      - currentId += 1 
      - else 
      - value = property.pretty_value