2016-11-16 8 views
0

私のダッシュボードのリストビューに適切なデータベースIDフィールドではなく、現在の番号を入力します。このため、rails_adminからformatted_valueを使用しています。唯一のことは、フォームをレンダリングした後にその値をリセットしたいからです。なぜなら、ページをリロードした後、そのIDはインクリメントし続け、決して0に戻らないからです。これまでのところ、私は多くの幸運なしでこれを試してみました: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

をoverridあなたは尋ねる。 –

+0

@Зелёный私は今質問を詳細で更新しました。ページがロードされ、それらのエントリがすべて表示されたら、そのフィールドをリセットしたいだけです –

+0

フォームがレンダリングされて_reet_ ruby​​変数_afterできません。レンダリングされたhtmlを操作するには、javascriptを使用します。 –

答えて

0

[SOLVED]

を、私はそれが私何のために不明である初期化子でfield :idを離れ、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 
関連する問題