我正在做一个Ruby on Rails课程,我正在尝试创建一篇博客文章,但它给了我一个错误。它说:
1 error prohibited this blog from being saved:
如何更改以修复它?
答案 0 :(得分:1)
在Blog
模型中,您可以添加:
belongs_to :topic, optional: true
这将删除Topic
关联的验证检查。
以下是optional上的文档。请注意,如果 ,您希望在没有Blog
的情况下进行Topic
保存。
答案 1 :(得分:0)
您可以强行保存:
post.save(validate: false)
答案 2 :(得分:0)
你必须把topic_id放在博客帖子belongs_to主题之后 这是如何
在app / views / blogs / _form.html.erb中添加f.select以选择主题(我从您传递的链接中复制了代码)
<%= form_with(model: blog, local: true) do |form| %>
<% if blog.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(blog.errors.count, "error") %> prohibited this blog from being saved:</h2>
<ul>
<% blog.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<%= form.select :topic_id, Topic.pluck(:title, :id).sort, include_blank: false %>
<div class="field">
<%= form.label :title %>
<%= form.text_field :title, id: :blog_title %>
</div>
<div class="field">
<%= form.label :body %>
<%= form.text_area :body, id: :blog_body %>
</div>
<div class="actions">
<%= form.submit %>
</div>
<% end %>