回复的未知属性“ discussion_id”

时间:2019-11-12 11:19:37

标签: ruby-on-rails ruby

我遇到错误“回复的未知属性'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

1 个答案:

答案 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

上了解有关强参数的更多信息。