2013-09-05 3 views
2

В activeadmin, я хотел бы знать, как перенаправить URL-адрес с параметром после создания записи?Переадресация ActiveAdmin после создания?

До сих пор у меня есть следующий код, который работает, кроме «event_id» пуст.

Например:

http://0.0.0.0:3000/admin/events/new?event_id=369877 

Код

controller do 
    def create 
     create! do |format| 
     parameters = Rack::Utils.parse_query URI(request.referrer).query 
     format.html { redirect_to '/admin/events?q[espn_event_id_equals]='+ parameters['espn_event_id'].to_s } 
     end 
    end 
    end 

Он rediects к:

http://0.0.0.0:3000/admin/events?q[event_id_equals]= 

вместо

http://0.0.0.0:3000/admin/events?q[event_id_equals]=369877 

Заранее спасибо

РЕШЕНИЕ

Решение было разобрать URL из request.referrer, чтобы получить нужный параметр.

controller do 
    def create 
     create! do |format| 
     parameters = Rack::Utils.parse_query URI(request.referrer).query 
     format.html { redirect_to '/admin/events?q[espn_event_id_equals]='+ parameters['espn_event_id'].to_s } 
     end 
    end 
    end 

Спасибо за предложения:)

+0

Вы нашли решение на этом? Был ли какой-либо из нижеприведенных ответов? – zeantsoi

+0

Спасибо, решение опубликовано:) – ipegasus

ответ

2

Во-первых, попробуйте манипуляция Парам к символу, а не строка:

format.html { redirect_to '/admin/events?q[event_id_equals]='+ params[:event_id].to_s } 

Если это не работает, это означает, (скорее всего, нет), что params[:event_id] является nil. Поскольку nil.to_s - пустая строка, вы не видите ничего, добавляемое к указанному пути.

+0

Спасибо! Так было. Это не видно из кода. – ipegasus

1

Ну, вы структура немного сбивает с толку. Но я думаю, что это довольно прямо вперед:

format.html { redirect_to admin_events_path(q[event_id_equals]: params[:event_id]) } 

, если это не работает, это, вероятно, потому, что он не может читать q[event_id_equals] как символ, в данном случае вы shoudl попробовать: admin_events_path("q[event_id_equals]" => params[:event_id])

Есть вероятно, лучшие способы именования и контроля над этим, но это, безусловно, поможет вам в этом.

Для active_admin 1.0.0.pre2:

format.html { redirect_to admin_events_path('q[event_id_eq]': params[:event_id]) } 
+0

Для active_admin 1.0.0.pre2 параметр должен быть «q [event_id_eq]». – Gavin

Смежные вопросы