【问题标题】:Error encountered The action 'show' could not be found for PostsController遇到错误找不到 PostsController 的操作“显示”
【发布时间】:2017-03-20 00:51:37
【问题描述】:

我是 Windows 中 ruby​​ on rails 的新手。我正在通过 youtube(https://www.youtube.com/watch?v=BI_VnnOLSKY) 遵循一些指南,但在定义索引方法时遇到错误“找不到 PostsController 的动作‘显示’”

注意:我在 windows 中的 ruby​​ on rails 版本是最新的。这是我将要做的第一个方法并显示我的第一个视图,但它给了我一个错误。

问题:我应该把 show 方法放到我的 PostsController 中吗?

路线

Rails.application.routes.draw do
  # For details on the DSL available within this file, see http://guides.rubyonrails.org/routing.html
  resource :posts
  root "posts#index"
end

帖子控制器

class PostsController < ApplicationController
    def index
    end
end

【问题讨论】:

标签: ruby-on-rails ruby


【解决方案1】:

您应该将resource :posts 更改为resources :posts,并将位于“application.html.erb”文件中的“应用程序”更改为“默认”。您需要添加一个show 方法,例如:

def show
  @post = Post.find(params[:id])
end

还有show.html.erb中的视图

【讨论】:

  • 先生,我将资源更改为资源 :posts 但给我一个新错误。错误是“ExecJS::ProgramError in Posts#index”ypeError: Object doesn't support this property or method Extracted source (about line #7): 5 6 7 8 9 10
  • 您的意思是默认值吗?我试图将资源更改为默认值:posts,它再次给了我一个新错误“TypeError 没有将 Symbol 隐式转换为 Hash Extracted source(在第 3 行附近):1 2 3 4 5 6 Rails.application.routes.draw do # 有关此文件中可用 DSL 的详细信息,请参阅 guides.rubyonrails.org/routing.html defaults :posts root "posts#index" end
  • 尝试将application 中的&lt;%= stylesheet_link_tag 'application', media: 'all', 'data-turbolinks-track': 'reload' %&gt; &lt;%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %&gt; 更改为default
猜你喜欢
  • 1970-01-01
  • 2012-05-12
  • 1970-01-01
  • 2020-09-19
  • 2014-01-20
  • 1970-01-01
  • 2011-12-21
  • 2022-08-03
  • 1970-01-01
相关资源
最近更新 更多