错误:操作'显示'无法找到PostsController"

时间:2013-08-01 11:15:16

标签: ruby-on-rails rails-migrations

我一直在学习通过

学习

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

请帮我解释为什么会出现这个错误

2 个答案:

答案 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