активная страница редактирования админки

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

Если я попробую render :action => 'edit', я получу отсутствующую страницу шаблона. Я также попробовал render active_admin_template('edit.html.arb'), который дает мне страницу внутри страницы, но без ошибок.

Любые идеи?

  member_action :state do
    space = Space.find(params[:id])
    if space.send(params[:state])
      #space.send(params[:state]+"!")
      flash[:notice] = "State Changed!"
      redirect_to :action => :index
    else
      #render :action => 'edit'
      #render active_admin_template('edit.html.arb')
      flash[:error] = "#{space.errors}"
      redirect_to :action => :edit
    end
  end

person holden    schedule 25.10.2011    source источник


Ответы (2)


Вы пробовали это?

render active_admin_template('edit.html.arb'), :layout => false
person Brian D'Astous    schedule 26.10.2011
comment
Это решает проблему вложенности макетов, но есть ли способ выделить поля, не прошедшие проверку? По-нормальному отредактировать бы? В настоящее время я передаю их методом flash: {:photos=›[недостаточно записей], :blurb=›[Ваше сообщение должно быть не менее 50 слов.]} - person holden; 27.10.2011
comment
Не уверен, извини. Но мне, вероятно, нужно будет решить это и для моего текущего проекта. - person Brian D'Astous; 28.10.2011
comment
этот метод не существует в более поздних версиях - см. title="activeadmin, как отображать шаблон по умолчанию в настроенном действии"> stackoverflow.com/questions/6653093/ для альтернативного решения - person Anthony Wang; 16.04.2016

У меня была аналогичная проблема, но я переопределял контроллер создания и хотел, чтобы вся активная административная божественность отображала сообщения об ошибках. Итак, вот что я сделал

controller do
 layout 'active_admin',  :only => [:create,:my_collection_method,:my_member_method]

 def create
 //my code here
 end
end

Итак, в основном, я добавил строку «layout «active_admin»» в свою часть контроллера и добавил ВСЕ свои пользовательские методы. Таким образом, «my_collection_method» — это пользовательское действие по сбору в активном ресурсе amdin, что-то вроде

:my_collection_action, :method=>:get do
//my code here
end

Вы можете попробовать что-то подобное

person Shalvika    schedule 30.07.2012