如何在没有主题的rails中创建博客文章?

时间:2017-07-04 01:46:56

标签: ruby-on-rails

我正在做一个Ruby on Rails课程,我正在尝试创建一篇博客文章,但它给了我一个错误。它说:

1 error prohibited this blog from being saved:

  • 主题必须存在

my code

如何更改以修复它?

3 个答案:

答案 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 %>