2010-11-21 2 views
0

Я создал модуль Wysiwyg, где пользователь может создавать пользовательские текстовые области для разных разделов своего сайта.Очистка контроллеров в Rails 2

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

def new 
    if Wysiwyg.find_by_name(params[:name]) != nil 
    redirect_to edit_admin_wysiwyg_path(Wysiwyg.find_by_name(params[:name])) 
    else 
    @wysiwyg = Wysiwyg.new(:name => params[:name]) 
    end 
end 

Проблема заключается в Rails по-прежнему считает, что его «новый», хотя я перенаправлен пользователь редактировать. Как я могу «очистить» контроллер и заставить его искренне полагать, что это на самом деле «редактирование»?

Спасибо!

+0

Вы произнося ту форму, которая визуализируется для #edit действия имеет маршрут, который будет #create вместо #update? – monocle

+0

Да! Странно, потому что мои параметры говорят об этом в редакторе, мой сайт - '/ wysiwygs/1/edit', но когда я нажимаю кнопку« Отправить », он переходит прямо к созданию. Моя форма создается как: '<% form_for (@wysiwyg,: url => admin_wysiwygs_path,: html => {: method =>: post}) do | f | %> ' – Trip

ответ

0

Ах моя проблема была в моей форме конкретизации

Старый и Зла:

<% form_for(@wysiwyg, :url => admin_wysiwygs_path, :html => { :method => :post}) do |f| %> 

Правильно:

<% form_for @wysiwyg, :url => admin_wysiwyg_path do |f| %>