私は Rails が初めてで、Ruby についてほとんど知りません。Rails Guide 4.0 のチュートリアルをじっと見ただけです。1 つのエラー : ID のない投稿が見つかりませんでした。
Rails Guide Getting Started Of Rails のようにすべてを行いました。
Railsガイドのコードは次のとおりです。
def show
@posts = Post.find(params[:id])
end
ここにビューコードがあります:
<p>
<strong>Title:</strong>
<%= @posts.title %>
</p>
<p>
<strong>Text:</strong>
<%= @posts.text %>
</p>
このコード レール ガイドの後、最終的に新しい投稿を作成できるようになります。localhost:3000/posts/new にアクセスして、試してみてください! しかし、新しい投稿を作成した後、エラーが表示されます。
インデックスアクションをまだ作成していないため、問題になる可能性があると思ったので、インデックスを作成しました。インデックスアクションの後、通常このアドレスにアクセスしようとすると、データベースからすべてのレコードが表示されますが、同じエラーを示すレコードが表示されます: t ID のない投稿を見つける
私はスタックオーバーフローであまりにも多くの投稿を試みましたが、すべて私にとって役に立たない他のアクションに関連しています.
この問題を解決するのを手伝ってください。レールガイドに従っているので、そうすべきではないと思っています。
index アクションと show アクションを追加したと書かれているので、Rails Getting Started Guide に従っています。本のように、このアドレス /posts にアクセスすると、すべての投稿が表示され、新しい投稿を作成すると、最後に入力した投稿を表示するようにリダイレクトされます。
私はredirect_to @postを使用していましたが、それにはエラーが発生し、スタックしてから使用しますredirect_to action: :show, id: @post.id
新しい投稿を作成すると機能し、/posts?id=last_inserted_id にリダイレクトしますが、他のスキャフォールド アドレスは posts/1 などにする必要があり、/posts にアクセスすると、コントローラーでインデックスとして定義されたすべての投稿アクションが表示されるはずです。 .
routes.rb
<code>
Blog::Application.routes.draw do
root "welcome#new"
resource :posts
</code>
コントローラー:
class PostsController < ApplicationController
def index
@post = Post.all
respond_to do |format|
format.html #index.html.erb
end
end
def show
@post = Post.find(params[:id])
respond_to do |format|
format.html #show.html.erb
end
end
def new
end
def create
@post = Post.new post_params
@post.save
redirect_to action: :show, id: @post.id
end
private
def post_params
params.require(:post).permit(:title, :message)
end
end
ありがとう