我遇到错误“回复的未知属性'discussion_id'” 仍在学习rails,但还不是很好,所以在这里苦苦挣扎 我对Rails的了解是初学者,所以请问一个可能不重要的问题,对不起。
先谢谢了。
<%= simple_form_for([@discussion, @discussion.replies.build], remote: true) do |f| %>
<div class="field">
<div class="control">
<%= f.input :reply, input_html: { class: 'textarea' }, wrapper: false, label_html: { class: 'label' } %>
</div>
</div>
<%= f.button :submit, 'Leave a reply', class:'button is-info' %>
<% end %>
显示答复和评论部分 错误消息:提取的源(第1行附近):
ActiveRecord::Schema Migration:AddDiscussionIdToReplies Migration:AddUserIdToReplies
答案 0 :(得分:0)
UPD:正如Max在下面的评论中所述,我的初步答案对您提出的确切问题没有用。这可能有助于避免使新错误更进一步,但实际上,您得到的ActiveRecord::UnknownAttributeError
错误可能仅与以下事实有关:在您的Reply模型中不存在属性discussion_id
和数据库中的“答复”表。您可能想将validates :discussion_id, presence: true
添加到您的Reply模型中,并在终端中运行:
rails generate migration add_discussion_id_to_replies discussion_id:integer
生成迁移文件,然后运行
rake db:migrate
进行迁移。
以便将discussion_id
列添加到数据库的“答复”表中。
上一个答案
您需要将:discussion_id
添加到reply
的Stong参数中。为此,您需要像下面这样在app / controllers / replies_contorller.rb私有方法的末尾添加:
private
def reply_params
params.require(:reply).permit(:id, :reply, :discussion_id)
end
允许后括号中的所有内容将反映您的回复模型的params哈希中允许的属性。如果您需要更多详细信息,请发布带有问题属性的reply
模型,我们可以帮助您添加必要的内容。您还可以在https://edgeapi.rubyonrails.org/classes/ActionController/StrongParameters.html