обновить таблицу redmine через код


Я кодирую плагин в redmine, я много раз обновлял таблицы, которые я создал, но когда я пытался обновить некоторые атрибуты в таблицах redmine, это не сработало.

В моем случае я хочу обновить " идентификатор" в таблице проекта.

def update_project_field()
begin
  @projj=Project.find(params[:project_id]) #current projet
  begin

    if (params[:identifier_pr]) != "" || (params[:identifier_pr]) != nil
        @projj.update_attributes(:identifier => params[:pr_identifier])
        if @projj.save
          flash[:notice] ="ok"
        else
          flash[:error] ="error"
        end

    end
  rescue Exception => e
    puts e.message
    puts e.backtrace.inspect
  end
  redirect_to :action=>'reunion'
end

конец

отображается сообщение об успешном завершении, но обновление не произошло.
что мне делать?
спасибо за помощь.


person ADNEN MASMOUDI    schedule 19.03.2013    source источник
comment
вы можете проверить sql-запрос в консоли сервера rails, так что вы найдете, что не так с вашим кодом, если что-то не так   -  person sanny Sin    schedule 19.03.2013
comment
он работает правильно (ошибок не обнаружено), но всегда я нахожу одну и ту же проблему (обновление не происходит)   -  person ADNEN MASMOUDI    schedule 19.03.2013
comment
не могли бы вы опубликовать трассировку стека вашего действия по обновлению? Начиная с параметров и заканчивая перед перенаправлением   -  person sanny Sin    schedule 19.03.2013
comment
irb(main):063:0* @proj=Project.find(:all, :conditions =› {:id =› 2}) ←[1m ←[36mProject Load (1,0 мс) ←[0m ←[1mSELECT projects. * FROM projects WHE RE projects.id = 2 ←[0m =› [#‹Идентификатор проекта: 2, имя: name_projet_2, описание: DESc_projet_2, домашняя страница: , is_public: true, parent_id: nil, created_on: 2013-03-12 13:46:48, обновлено ted_on: 2013-03-12 13:46:48, идентификатор: idetifier_projet_2, статус: 1, слева: 3, справа: 4›]   -  person ADNEN MASMOUDI    schedule 19.03.2013
comment
irb(main):064:0› @proj.each делать |a| irb(main):065:1* a.update_attributes(:identifier =› новый идентификатор) irb(main):066:1› end ←[1m ←[35m (1.0ms) ←[0m BEGIN ←[1m ←[36mProject Существует (0,0 мс) ←[0m ←[1mSELECT 1 AS one FROM projects WHERE (projects.identifier = BINARY 'idetifier_projet_2' AND projects.id != 2 ) LIMIT 1 ←[0m ←[1m ←[35m Загрузка репозитория (1,0 мс) ←[0m SELECT repositories.* FROM repositori es WHERE repositories.project_id = 2 AND (is_default = 1) LIMIT 1 ←[1m ←[36mWiki Load (1.0ms) ←[0m ←[1mSELECT wikis.* FROM wikis WHERE wikis .project_id = 2 ПРЕДЕЛ 1 ← [0 м   -  person ADNEN MASMOUDI    schedule 19.03.2013
comment
←[1m ←[35mCustomField Load (0,0 мс) ←[0m SELECT custom_fields.* FROM custom_f ields WHERE (type = 'ProjectCustomField') ORDER BY position ←[1m ←[36mSQL (4,0 мс) ←[0m ←[1mSELECT custom_values.id AS t0_r0, custom_va lues.customized_type AS t0_r1, custom_values.customized_id AS t0_r2, `cus   -  person ADNEN MASMOUDI    schedule 19.03.2013
comment
tom_values.custom_field_id` as t0_r3, _2 _._ 3_ as t0_r4, _4 _._ 5_ as t1_r0, _6 _._ 7_ as t1_r1, _8 _._ 9_ as t1_r2, _10 _._ 11_ as t1_r3, _12, _10.   -  person ADNEN MASMOUDI    schedule 19.03.2013
comment
r12, _1 _._ 2_ as T1_R13, _3 _._ 4_ as T1 _r14, _5 _._ 6_ as T1_R15, _7 _._ 8_ as T1_R16 из custom_values left ocke custom_fields on _11 _._ 12_ = `` _valuescustom_fields1_11 = 'Проект' ORDER BY custom_fields.position ←[0m   -  person ADNEN MASMOUDI    schedule 19.03.2013
comment
←[1m ←[35m (1,0 мс) ←[0m COMMIT =› [#‹Идентификатор проекта: 2, имя: name_projet_2, описание: DESc_projet_2, домашняя страница: , is_public: true, parent_id: nil, created_on: 2013-03- 12 13:46:48, обновление ted_on: 2013-03-12 13:46:48, идентификатор: idetifier_projet_2, статус: 1, слева: 3, справа: 4›]   -  person ADNEN MASMOUDI    schedule 19.03.2013
comment
Как видите, даже после коммита значение идентификатора остается прежним   -  person ADNEN MASMOUDI    schedule 19.03.2013
comment
Вы уверены, что обновление не перезаписывается где-то? И не могли бы вы опубликовать эту трассировку стека на каком-нибудь сайте вставки, например pastebin или pastie. ОЧЕНЬ тяжело читать это здесь   -  person sanny Sin    schedule 19.03.2013
comment
Я попытался поместить его в тот же пост, но он слишком длинный. и Веб-сайт не позволяет мне ответить на мой вопрос, кроме как через 8 часов. если хотите, я пришлю вам этот след по электронной почте. большое спасибо   -  person ADNEN MASMOUDI    schedule 19.03.2013


Ответы (2)


Это может быть полезно!

def update_project_field()
  begin
    @projj = Project.find(params[:project_id]) #current projet
    unless params[:identifier_pr].blank?
      @projj.identifier = params[:pr_identifier]
      if @projj.save!
        flash[:notice] = "ok"
      else
        flash[:error] = "error"
      end
    end
  rescue Exception => e
    flash[:error] = "Exception raised"
    puts e.message
    puts e.backtrace.inspect
  end
  redirect_to :action=>'reunion'
end
person Sagar Bommidi    schedule 19.03.2013

Не удалось обновить идентификатор проекта, поскольку редмайн использует его в URL-адресе проекта.
Поэтому, прежде чем создавать новый проект, вы должны убедиться в правильности идентификатора, потому что после того, как вы его создали, вы не сможете его изменить.

person ADNEN MASMOUDI    schedule 11.04.2013