2017-07-04 75 views

回答

1

在你Blog模型,你可以添加:

belongs_to :topic, optional: true 

這將刪除Topic關聯的驗證檢查。

以下是optional上的文檔。請記住,這是如果你想有一個Blog保存沒有Topic

+0

謝謝。這工作。但是如果我想輸入主題,我仍然沒有主題文本框。我如何添加? –

+0

你想要那裏*永遠*成爲一個話題? – jdgray

+0

不可以。我想爲主題提供選項,但如果我沒有它,我希望它仍然可以發佈。 –

0

可以省力,像這樣:

post.save(validate: false) 
+0

我會在哪裏放置該代碼? –

0

你必須把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 %> 
+0

它沒有工作。我剛剛得到一個錯誤,說'未定義的局部變量或方法'f'爲#<#:0x007f9a0da71210> –

+0

ups對不起,您使用博客形式,我只是將我的答案從f.select更改爲form.select – widjajayd

+0

現在它說#undefined方法'uniq'爲#' –

相關問題