我正在做一個Ruby on Rails課程,我正在試圖創建一篇博文,但它給了我一個錯誤。它說:如何在沒有主題的rails中創建博客文章?
1 error prohibited this blog from being saved:
- 主題必須存在
我怎麼改解決?
我正在做一個Ruby on Rails課程,我正在試圖創建一篇博文,但它給了我一個錯誤。它說:如何在沒有主題的rails中創建博客文章?
1 error prohibited this blog from being saved:
我怎麼改解決?
在你Blog
模型,你可以添加:
belongs_to :topic, optional: true
這將刪除Topic
關聯的驗證檢查。
以下是optional上的文檔。請記住,這是如果你想有一個Blog
保存沒有Topic
。
可以省力,像這樣:
post.save(validate: false)
我會在哪裏放置該代碼? –
你必須把topic_id因爲博客文章belongs_to的話題 這裏是如何
內部應用程序/視圖/博客/ _form.html.erb添加˚F 。選擇選擇主題(我複製從鏈接,你通過代碼)
<%= 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 %>
它沒有工作。我剛剛得到一個錯誤,說'未定義的局部變量或方法'f'爲#<#
ups對不起,您使用博客形式,我只是將我的答案從f.select更改爲form.select – widjajayd
現在它說#undefined方法'uniq'爲#
謝謝。這工作。但是如果我想輸入主題,我仍然沒有主題文本框。我如何添加? –
你想要那裏*永遠*成爲一個話題? – jdgray
不可以。我想爲主題提供選項,但如果我沒有它,我希望它仍然可以發佈。 –