gpt4 book ai didi

ruby-on-rails - Rails 表单 "Must exist"关联

转载 作者:行者123 更新时间:2023-12-02 06:14:35 26 4
gpt4 key购买 nike

我创建了这个表单,使用 simple form gem , 对于论坛的帖子类:

<%= simple_form_for @post do |p| %>
<%= p.input :title, label: false, placeholder: 'Title', required: true %>
<%= p.input :description, as: :text, label: false, placeholder: 'Describe your post', required: true %>
<%= p.association :category, label: false, required: true,
collection: Category.order(:title), prompt: 'Choose category' %>
<%= p.button :submit %>
<% end %>

现在我转到页面并尝试创建一个帖子,我得到了这个:

Image for Form Error

我不知道如何进行,因为这些对象(C、C++ 等)都存在。这是它们创建的地方,在 seeds.rb
c1 = Category.create(title: "C++", image_url: 'http://www.freeiconspng.com/uploads/c--logo-icon-0.png')
c2 = Category.create(title: "Rails", image_url: 'http://perfectial.com/wp-content/uploads/2015/02/ruby.png')
c3 = Category.create(title: "Python", image_url: 'http://python.net/~goodger/projects/graphics/python/newlogo-repro.png')
c4 = Category.create(title: "Cobol", image_url: 'http://insights.dice.com/wp-content/uploads/2013/06/cobol.png')
c5 = Category.create(title: "C", image_url: 'https://d13yacurqjgara.cloudfront.net/users/28449/screenshots/1040285/cap-logo-ideas3.png')
c6 = Category.create(title: "Perl", image_url: 'http://news.perlfoundation.org/onion_logo.png')

是的,我确实运行了 rake db:seed 并在尝试之前重新启动了服务器。

最佳答案

这与语言级对象模型几乎没有关系,并且是特定于框架/orm 的。 belongs_to Rails 5 中的关联默认是非可选的。

因此,例如,如果您有以下设置:

class Post
belongs_to :category
end

class Category
has_many :posts
end

如果 post.category_id,您将收到验证错误是 nil。如果您忘记将 category_id 列入白名单,就会发生这种情况。属性。
def post_attributes
params.require(:post).permit(:title, :description, :category_id)
end

此外,您可以声明 category关联作为可选:
class Post
# this was the default behavior in Rails 4
belongs_to :category, optional: true
end

关于ruby-on-rails - Rails 表单 "Must exist"关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40960916/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com