ruby-on-rails - rails : undefined method `model_name' for Fixnum:Class

标签 ruby-on-rails

类别/show.html.erb

<body class="home">
<% @category.subcategories.each do |subcategory| %>
    <%= link_to subcategory.name, subcategory.id %>
<% end %> 

抛出 类别中没有方法错误#show Fixnum:Class 的未定义方法“model_name”

网址是http://example.com:3000/category/11

路线.rb

FirstApp::Application.routes.draw do
  root 'category#index'
  resources :category 
end

类别 Controller

class CategoryController < ApplicationController

  def index
    @categories = Category.all
  end    

  def new
  end

  def show
    @category = Category.find params[:id]
  end
end

子类别 Controller 为空

class SubcategoryController < ApplicationController

  def create
  end

  def new
  end

  def show
    @category = Category.find(params[:id])
  end
end

category.subcategories 方法在控制台中工作。我可能遗漏了一些明显的东西。

最佳答案

试试这个:

<%= link_to subcategory.name, subcategory %>

当您将 subcategory.id 作为第二个参数传递给此方法时,Rails 会尝试从您传递的 Fixnum 中猜测路径。由于这是不可能的,因此会引发错误。

您还应该添加

resources :subcategories

到您的routes.rb并将您的SubcategoryController重命名为SubcategoriesController

并且在SubcategoriesController#show中应该是:

@subcategory = Subcategory.find(params[:id])

关于ruby-on-rails - rails : undefined method `model_name' for Fixnum:Class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18530533/

相关文章:

php - 幕后 : How does an ORM "think"?

css - Rails 4/ubuntu 生产中的 Bootstrap 损坏

ruby-on-rails - 如何在 capistrano 部署中管理捆绑的 gems?

ruby-on-rails - 如何从 ruby​​ 中的字符串中分割值

ruby-on-rails - RSpec 测试失败

ruby-on-rails - Rails 中存在和 allow_blank 验证器之间的区别?

ruby-on-rails - 如何运行 Ruby on Rails rake 命令

sql - rails union hack,如何将两个不同的查询放在一起

ruby-on-rails - 如何验证 Rails 模型中的 url?

ruby-on-rails - Heroku - ActiveRecord::ConnectionTimeoutError(无法在 5.000 秒内获得数据库连接(等待 5.000 秒))