Kullanıcıların (Devise ile doğrulanmış) kullanıcıların gönderebileceği basit bir web sitesi yazıyorum. Yeni bir gönderi oluşturulduktan sonra, yayına yönlendirilmeyeceği bu hatayı alıyorum. İşte benim Mesajlar denetleyicisi var:raylar - NoMethodError in PostsController # tanımlanmamış yöntem oluştur `post_url '
Rails.application.routes.draw do
devise_for :users
resources :users do
resources :posts
end
root 'posts#new'
end
mesajlar kaynak belki benim denetleyicisi bu olmalıdır düşünce kullanıcılar içinde yuvalanmış beri:
if @post.save
redirect_to [email protected]
end
İşte
class PostsController < ApplicationController
before_filter :authenticate_user!
def new
@post = current_user.posts.new
end
def create
@post = current_user.posts.new(post_params)
if @post.save
redirect_to @post
end
end
def show
@post = Post.find_by_id(params[:id])
end
private
def post_params
params.require(:post).permit(:title, :content)
end
end
benim routes.rb var
Ancak bu bir MessageServer # create error içinde bir SyntaxError üretir.
Denetleyicinin oluşturulduktan sonra postayı yeniden yönlendirmesini engelleyen bir sorun olan herkes görülebilir mi? Herhangi bir yardım çok takdir edilecektir.
Bu işe yarayacak gibi görünüyor ama şimdi aldım: Hiçbir yol eşleşmiyor {: action => "show",: controller => "posts",: id => nil,: user_id => #} gerekli anahtarlar eksik: [: id] Bazı nedenlerden dolayı kimliğin doğru şekilde iletilmediği görünüyor. –
@AdamLazarus evet, kullanıcı kimliği arıyor. Cevabı düzenledim, lütfen bir kez deneyin. – dp7
Hayır şans! Yine de aynı hatayı veriyor. Ben de [current_user, @post] ile denedim ve bu da işe yaramadı. Hata mesajı şu şekildedir: id => nil ve gerekli anahtarlar eksik: [: id] Yani yeni gönderinin kimliği doğru bir şekilde rotaya geçirilmediğinde sorun değil mi? –