Problem z metodą create po zainstalowaniu devise

Zainstalowalem i skonfigurowałem (mam na myśli wygenerowanie “modelu devise”) devise-a. Po odwiedzeniu akcji new w kontrolerze post wyswietla mi sie formularz gdzie moge dodac wpis, jednak przy probie jego dodania zostaje przekierowany na index kontrolera post - tak jak było to przed zainstalowaniem wspomnianego gema, jednak z tą różnicą, że wpis nie zostaje dodany. Tak jak gdyby nie wykonywala się metoda create. Prosił bym o pomoc, sugestię jak mogę zdebugować problem.

Pokaż kod kontrolera. Zgodnie z konwencją, jeśli metoda create by została wywołana, ale nie zapisałaby rekordu, wyświetliłby Ci się z powrotem formularz.

[code]class PostsController < ApplicationController
#before_filter :authenticate_admin!
def new
@post = Post.new
end

def create
@post = Post.new(params[:post])

if @post.save
  redirect_to new_posts_path, :notice => "Wpis zostal dodany prawidlowo"
else
  render "new"
end

end
end[/code]
Wyciąłem z kodu akcję index i show

A nie masz czasem w ApplicationController jakiegoś before_filter, który mógłby robić przekierowanie? Mógłbyś też wrzucić odpowiedni kawałek logów.

W ApplicationController nie mam żadnego before_filter.
Natomiast w logach serwera dostaje cos takiego:

Processing by PostsController#index as HTML
Parameters: {“utf8”=>“✓”, “authenticity_token”=>“27J/B8keGlxxQlJBFXOlAd3C6i8kSMcZQ4sht/gpWnY=”, “post”=>{“title”=>“t”, “content”=>“t”}, “commit”=>“Dodaj”}
Post Load (0.2ms) SELECT “posts”.* FROM “posts”
Rendered posts/index.html.erb within layouts/application (71.3ms)
Completed 200 OK in 526ms (Views: 384.4ms | ActiveRecord: 6.5ms)

Wygląda tak jak by wykonywał akcję index (select na bazie), zamiast create. Mimo, że żądanie jest wysłane przy pomocy POST, a nie GET

http://guides.rubyonrails.org/getting_started.html#creating-new-posts
Poczytaj trochę, miałem podobny problem kiedyś :wink:

Już to czytałem. Nie wydaje mi się by tam były informacje, które pomogą mi w rozwiązaniu mojego problemu.

Pokaż wobec tego swoje routes.rb.

devise_for :admins

get “slcategories/show”

root :to => “home#index”

match “/posts” => “posts#index”
match “/posts/:title” => “posts#show”
match “/admins/posts/new” => “posts#new”

resources :posts

dodatkowo załączam kawałek rake routes:

GET /posts(.:format) posts#index
POST /posts(.:format) posts#create

Usuń match “/posts” => “posts#index” i spróbuj jeszcze raz.

Działa - dzięki. Choć pojawiły się nowe problemy, ale myślę, że z nimi sobie poradzę.