- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我是 RoR 的新手,我在为现有数据库实现 Rails 应用程序时遇到了一些问题。最后一个我无法摆脱,我在网上也找不到任何关于它的信息,所以我决定把它贴在这里。提前致谢!
错误:
当我尝试向站点表插入一个新寄存器时,我收到此错误:
ActiveRecord::StatementInvalid in SiteController#create
Mysql2::Error: Column 'idcustomer' cannot be null: INSERT INTO `site` (`name`, `address`, `postcode`, `idcustomer`, `observations`) VALUES (NULL, NULL, NULL, NULL, NULL)
Rails.root: /Users/biali/rails/gtonline
Application Trace | Framework Trace | Full Trace app/controllers/site_controller.rb:37:in `block in create' app/controllers/site_controller.rb:36:in `create'
请求
参数:
{"utf8"=>"✓",
"authenticity_token"=>"5Yzo/fIZ7SnRuEHHep6bpuQsRcwl0goLLDg=",
"site"=>{"name"=>"1321231",
"address"=>"32131",
"postcode"=>"321231",
"observations"=>"321321321"},
"idcustomer"=>"64", "commit"=>"Create
Site", "belongs_to"=>:customer}
表格:
mysql> desc site;
+--------------+-------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+----------------+
| idsite | int(11) | NO | PRI | NULL | auto_increment |
| name | varchar(45) | YES | | NULL | |
| address | text | YES | | NULL | |
| postcode | varchar(8) | YES | | NULL | |
| idcustomer | int(11) | NO | MUL | NULL | |
| observations | text | YES | | NULL | |
+--------------+-------------+------+-----+---------+----------------+
6 rows in set (0.04 sec)
模型:
class Site < ActiveRecord::Base
set_table_name 'site'
set_primary_key 'idsite'
belongs_to :customer, :foreign_key=>'idcustomer'
end
Controller :
...
def new
@site = Site.new
respond_to do |format|
format.html
format.xml { render :xml => @site }
end
end
def create
@site = Site.new(params[:id])
respond_to do |format|
if @site.save
format.html { redirect_to(@site, :notice => 'Site was successfully added.') }
format.xml { render :xml => @site, :status => :created, :location => @site }
else
format.html { render :action => "new" }
format.xml { render :xml => @site.errors, :status => :unprocessable_entity }
end
end
end
...
View :
<h1>New Site</h1>
<%= render 'form' %>
<%= link_to 'Back', sites_path %>
_form:
<%= form_for(@site) do |f| %>
<% if @site.errors.any? %>
<div id="errorExplanation">
<h2><%= pluralize(@site.errors.count, "error") %> prohibited this insertion from being saved:</h2>
<ul>
<% @site.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :name %><br />
<%= f.text_field :name %>
</div>
<div class="field">
<%= f.label :address %><br />
<%= f.text_area :address %>
</div>
<div class="field">
<%= f.label :postcode %><br />
<%= f.text_field :postcode %>
</div>
<div class="field">
<%= f.label :observations %><br />
<%= f.text_area :observations %>
</div>
<div class="field">
Customer<br />
<%= select_tag(:idcustomer, options_for_select(Customer.order('name').map {|customer| [customer.name, customer.idcustomer]}, @idcustomer)) %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
最佳答案
<%= select_tag(:idcustomer, options_for_select(Customer.order('name').map {|customer| [customer.name, customer.idcustomer]}, @idcustomer)) %>
应该是这样的:
<%= f.select :idcustomer, options_for_select(Customer.order('name').map{|customer| [customer.name, customer.idcustomer]}, @idcustomer) %>
或
<%= select_tag('site[idcustomer]', options_for_select(Customer.order('name').map {|customer| [customer.name, customer.idcustomer]}, @idcustomer)) %>
关于mysql - SiteController 中的 ActiveRecord::StatementInvalid#create Rails 为所有字段插入空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5238858/
创建一个 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
我是一名优秀的程序员,十分优秀!