我一直在学习通过
学习http://guides.rubyonrails.org/getting_started.html
我在控制器中执行保存数据时遇到错误。运行博客时出现的错误是:“找不到PostsController的动作'show'”
**
我对posts_controller.rb的代码是
**
class PostsController < ApplicationController
def new
end
def create
@post=Post.new(params[:post].permit(:title,:text))
@post.save
redirect_to @post
end
private
def post_params
params.require(:post).permit(:title,:text)
end
def show
@post=Post.find(params[:id])
end
end
**
我的show.html.rb代码是
**
<p>
<strong> Title:</strong>
<%= @post.title %>
</p>
<p>
<strong> Text:</strong>
<%= @post.text %>
</p>
**
create_posts.rb的代码
**
class CreatePosts < ActiveRecord::Migration
def change
create_table :posts do |t|
t.string :title
t.text :text
t.timestamps
end
end
请帮我解释为什么会出现这个错误
答案 0 :(得分:7)
PostsController#show
方法应该是公开的。
class PostsController < ApplicationController
def new
end
def create
@post=Post.new(params[:post].permit(:title,:text))
@post.save
redirect_to @post
end
def show
@post=Post.find(params[:id])
end
private
def post_params
params.require(:post).permit(:title,:text)
end
end
答案 1 :(得分:1)
为什么你把你的节目动作放在私人中?把它放在私人场外。
def new
@post = Post.new
end
def create
@post=Post.new(params[:post].permit(:title,:text))
if @post.save
redirect_to @post
else
render 'new'
end
end
def show
@post=Post.find_by_id(params[:id])
if @post.blank?
flash[:error] = 'The Post not found in the database'
redirect_to root_path
end
end
private
def your_private_functions
end