我遇到一个错误“未知属性'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 %>回复和评论部分的显示错误消息: Extracted source (在第1行周围):
ActiveRecord::Schema Migration:AddDiscussionIdToRepliesMigration:AddUserIdToReplies
发布于 2019-11-12 19:58:57
更新:正如麦克斯在下面的评论中提到的,我最初的回答对你的确切问题没有帮助。这可能有助于以后不再获得新的错误,但实际上,您得到ActiveRecord::UnknownAttributeError的错误可能只与以下事实有关:回复模型和数据库中的回复表格中不存在属性discussion_id。您可能希望将validates :discussion_id, presence: true添加到您的回复模型中,并在终端中运行:
rails generate migration add_discussion_id_to_replies discussion_id:integer
生成迁移文件,然后运行
rake db:migrate
来移植它。
以便将discussion_id列添加到数据库的Replies表中。
对于上一个答案,您需要将:discussion_id添加到reply的stong参数中。要做到这一点,您需要在应用程序/controllers/replies_contorller.rb私有方法的末尾添加如下内容:
private
def reply_params
params.require(:reply).permit(:id, :reply, :discussion_id)
end允许后括号中的所有内容都将反映您的回复模型的params hash中允许的属性。如果您需要更多详细信息,请在您的问题中发布带有属性的reply模型,我可以帮助您添加必要的属性。您还可以在这里阅读有关强参数的更多信息https://edgeapi.rubyonrails.org/classes/ActionController/StrongParameters.html
https://stackoverflow.com/questions/58817607
复制相似问题