- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是一名开发 Sinatra/Ruby/ActiveRecord 应用程序的新开发人员。我已经在 Category 和 Recipe 之间建立了 1:many (postgres) 关系。当我尝试列出类别中的食谱时,出现错误:
ActiveRecord::StatementInvalid 在/category/5PG::UndefinedColumn:错误:列 recipes.category_id 不存在 第 1 行:从“食谱”中选择 1 作为一个,其中“食谱”。 “category_id”= $1 限制 1文件:postgresql_adapter.rb 位置:准备行:637
应用.rb
get('/category/:id') do
@category = Category.find(params.fetch('id'))
@recipes = @category.recipes
erb(:category)
end
类别.erb
<% if @recipes.any?() %>
<% @recipes.each() do |recipe| %>
<ul>
<li><a href='/recipe/<%=recipe.id%>'> <%=recipe.recipe_name%></a></li>
</ul>
<%end%>
<%else %>
<p>You have no recipes!</p>
<%end%>
架构
ActiveRecord::Schema.define(version: 20150930234556) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
create_table "categories", force: :cascade do |t|
t.string "cat_name"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "images", force: :cascade do |t|
t.string "image_name"
t.string "url"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.string "alt"
t.integer "width"
t.integer "height"
t.integer "recipe_id"
end
create_table "ingredients", force: :cascade do |t|
t.string "ingredient_name"
t.integer "recipe_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "instructions", force: :cascade do |t|
t.string "instruction_name"
t.integer "recipe_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
end
create_table "recipes", force: :cascade do |t|
t.string "recipe_name"
t.string "source"
t.string "servings"
t.string "comment"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "cat_id"
end
end
我已经搜索了我的项目文件夹,但找不到 category_id。不知道为什么要查找它,我的字段名称是 category.id 和 recipe.cat_id。
最佳答案
这个:
@recipes = @category.recipes
表明你有
has_many :recipes
在您的类别
模型中。 has_many
将在您的 recipes
表中寻找一个 category_id
列(即您的 中的一个
模型)。但是您没有 category_id
属性>配方recipes.category_id
列,您有一个 recipes.cat_id
列:
create_table "recipes", force: :cascade do |t|
#...
t.integer "cat_id"
end
我建议将 recipes.cat_id
列重命名为 recipes.category_id
以匹配 Rails 非常喜欢的约定。如果您不能重命名该列,则向该 has_many
添加一个 :foreign_key
选项,以告诉 Category
如何解析关系:
has_many :recipes, :foreign_key => :cat_id
关于ruby - ActiveRecord::StatementInvalid 在/category/5,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32897958/
创建一个 activerecord 查询并调用 last,它有一个使用 MYSQL 的 order by field 的订单会抛出一个 StatementInvalid 异常。 例如: ruby-1.
我正在尝试使用 Project.find(id) 从 Project 模型中找到一个项目,但它给了我 ActiveRecord::StatementInvalid错误 完整跟踪- PG::Error
我正在尝试运行刚刚有的users_test.rb文件 test "the truth" do assert true end 我确实有一个喜欢表,但仍然收到此错误。为什么这样? You
我几天前开始学习 rails3,从今天开始,每次我为我的模型运行单元测试时,我都会收到此错误消息: ActiveRecord::StatementInvalid: SQLite3::SQLExcept
我正在学习 Ruby on Rails 教程,我已经完成了第 7 章并且运行良好,但是遇到了 25 个失败/错误,如下所示: 用户 失败/错误:@user = User.new(名称:“示例用户”,电
我是 ruby on Rails 的学习者,我想加入两个模型(表)。User.rb(用户表) class User :candidate_id) end 结束 运行我的代码时出现错误
我们刚刚将 Rails 应用程序从 3.0.13 更新到 3.2.6,并且在使用 mysql2 的 Active Record 查询接口(interface)的 .where 方法时遇到了一个小问题。
有谁知道如何解决 rails 中的 ActiveRecord::StatementInvalid 错误?控制台显示“PG::InvalidTextRepresentation: ERROR: inva
这是完整的错误信息 ActiveRecord::StatementInvalid: PG::DataCorrupted: 错误:无法读取文件“base/50711/50722”中的 block 0:只
我是一名开发 Sinatra/Ruby/ActiveRecord 应用程序的新开发人员。我已经在 Category 和 Recipe 之间建立了 1:many (postgres) 关系。当我尝试列出
我有一个复选框字段 (car_options),用于存储多个选项的值数组。 我需要查询包含另一个数组中任何值的所有 Car 记录。 ["a","b","c","d","e","f"] 包含以下任何一项
我正在尝试创建一个 ActiveRecord 对象。但是我在创建它时遇到了这个错误。 (0.1ms) ROLLBACK ActiveRecord::StatementInvalid: PG::InF
在我的rails项目中,我使用sidekiq处理耗时任务,但是在sidekiq中记录了一个错误: ActiveRecord::StatementInvalid: Mysql2::Error: Lock
我之前将我的模型错误地命名为“公司”。我没有重命名它,而是重命名了所有引用,删除了数据库并通过重新运行迁移重新创建了所有内容。我能够从 SQLite 资源管理器中看到重新创建为“公司”的表,但是当我通
将 rails 应用程序从 rails3.2 升级到 rails 4 时出现问题 ActiveRecord::StatementInvalid in SessionsController#new My
我在 Ruby on Rails 上使用 ActiveRecord 和 oracle 适配器。尝试删除行时出现 StatementInvalid Exception。 这是我的 table 的样子:r
cis.statbib.org: script/console Loading development environment (Rails 2.2.2) Article.founc>> Articl
我使用 rails_admin 作为管理面板。只需更改图像模型中的关联 由此 class Image < ApplicationRecord belongs_to :user belong
在RSpec中运行测试时,出现以下错误: Failures: 1) User micropost associations should have the right micropost in t
在我的 Rails 应用程序中,我有一个脚本可以更新数据库中的一些记录。当我发送一个 SIGTERM 来终止脚本时,它偶尔会在 ActiveRecord 执行查询时收到该信号。这会导致引发 Activ
我是一名优秀的程序员,十分优秀!