2012-01-20 3 views
0

Я хотел бы сделать условное обновление в ruby ​​on rails 3.1 Где, на основе вашего местоположения, после обновления будет выполнено перенаправление. Разделил мою 1 большую форму, чтобы отделить меньшие, так что теперь Идея - перенаправить на правильную подчиненную форму.Условное перенаправление после обновления

Например, форма может быть представлена ​​от:

  • Основы профиля формы
  • Профильные детали образуют

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

Это мой контроллер действия обновления:

def update 

    @profile = Profile.find(params[:id]) 

    respond_to do |format| 

    if @profile.update_attributes(params[:profile]) 
     format.html { redirect_to @profile, notice: 'Profile was successfully updated.' } 
     else 
     format.html { 
      render :action => "edit_basics" 
      # 

     } 
     end 
    end 
    end 

ответ

4

Почему не просто передать местоположение перенаправлять как hidden_field в форме, то есть каждый вид установить его по мере необходимости:

redirect_to params[:redirect_location] 

Вы могли бы также сделайте это с помощью шагов или чего-то еще, если вы не хотите раскрывать необработанную строку в своем HTML:

redirect_to location_for_step(params[:step]) 
+0

in vie w '<% = hidden_field_tag: redirect_location, '/ whatever/url'%>' – maxcobmara