обновление вместо показа вызова в REST-рельсах - PullRequest
1 голос
/ 24 июня 2011

У меня есть форма, которую отправляет пользователь.Форма для пользователя.В моем файле rout.rb есть следующее:

 resources :users, :except => [:new]

  root :to => 'pages#home'
  match '/contact', :to => 'pages#contact'
  match '/about',   :to => 'pages#about'
  match '/help',    :to => 'pages#help'

В файле users_controller.rb:

  def create
    @title = "Home"
    @user = User.new(params[:user])
    respond_to do |format|
      if @user.save
        format.html { redirect_to user_path(@user), :flash => {:success => "Your friend's details have been saved.The surprise has begin"} }
        format.js
      else
        format.html { render :template => 'pages/home'}
        format.js
      end
    end
  end

Эта форма отправляется с обычным запросом POST, а не с помощью Ajax.

Я хочу знать, почему шаблон Обновления запрашивается после успешной отправки формы вместо Показа.

Вывод из маршрутов рейка следующий:

    users GET    /users(.:format)          {:action=>"index", :controller=>"users"}
          POST   /users(.:format)          {:action=>"create", :controller=>"users"}
edit_user GET    /users/:id/edit(.:format) {:action=>"edit", :controller=>"users"}
     user GET    /users/:id(.:format)      {:action=>"show", :controller=>"users"}
          PUT    /users/:id(.:format)      {:action=>"update", :controller=>"users"}
          DELETE /users/:id(.:format)      {:action=>"destroy", :controller=>"users"}
     root        /(.:format)               {:controller=>"pages", :action=>"home"}
  contact        /contact(.:format)        {:controller=>"pages", :action=>"contact"}
    about        /about(.:format)          {:controller=>"pages", :action=>"about"}
     help        /help(.:format)           {:controller=>"pages", :action=>"help"}

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

Ответы [ 2 ]

0 голосов
/ 25 июня 2011

Какой код у контроллера и вид этой формы?Существует ли существующий пользовательский объект при создании формы или новый пользовательский объект (т. Е. @User = User.new в вашем контроллере)?Если пользователь уже существует, форма будет отправлена ​​на обновление.

0 голосов
/ 24 июня 2011

Ваш маршрут и код контроллера выглядят хорошо, т. Е. Он должен отправлять вас в метод show в вашем users_controller. Я бы добавил туда отладочный код, то есть logger.debug("Inside Show"), чтобы узнать, вызывается ли метод show.

Вы также можете включить вывод rake routes в отредактированный вопрос, это может быть информативным, чтобы показать, куда помощник user_path собирается отправить перенаправление.

Иэн.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...