gpt4 book ai didi

ruby-on-rails - 使用accepts_nested_attributes_for、has_many 并只创建一个条目

转载 作者:行者123 更新时间:2023-12-04 23:06:52 25 4
gpt4 key购买 nike

我有一个有很多评论的页面。许多用户可以访问此页面并提交评论。我在另一个不公开的页面上查看评论。

模型/page.rb

class Page < ActiveRecord::Base
has_many :comments, :dependent => :destroy
accepts_nested_attributes_for :comments, :allow_destroy => true
end

模型/comment.rb
class Comment < ActiveRecord::Base
belongs_to :page
belongs_to :user
end

views/pages/show.html.erb 相关部分
<%= form_for @page, :remote => true do |f| %>
<% f.fields_for :comments do |builder| %>
<%= builder.text_area :content, :rows => 1 %>
<%= builder.submit "Submit" %>
<% end %>
<% end %>

Controller /pages_controller.rb
def show
@page = Page.find(params[:id])
end

def update
@page = Page.find(params[:id])
@page.comments.build
@page.update_attributes(params[:page])
end

这里的问题是我不想让用户看到多个评论字段。然而,如果我这样做 <% f.fields_for :comment do |builder| %>然后它会抛出一个错误,因为它不知道一个评论是什么,只想处理多个。

本质上,用户应该能够在一个页面上提交一条评论,该页面有很多评论,并且自动与页面相关联。作为次要的事情,我需要将用户的 ID(可通过 Devise 通过 current_user.id 访问)与评论相关联。

最佳答案

<% f.fields_for :comments, f.object.comments.build do |fc| %>
<!-- rest of form -->
<% end %>

关于ruby-on-rails - 使用accepts_nested_attributes_for、has_many 并只创建一个条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10018461/

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