ruby-on-rails - Rails 在视图中传递 ID 以避免 - nil:NilClass 的未定义方法“created_at”
问题描述
在我的控制器中,我有一个动作可以让我从收件箱重播原始消息:
def create
original_message = current_user.inbox.messages.find_by(id: params[:original_message_id])
inbox = if original_message.created_at > 3.days.ago
original_message.moderator.inbox
else
original_message.admin.inbox
end
@message = Message.create(
inbox: inbox
body: params[:message][:body]
)
end
如果原始消息超过 3 天,则回复应发送到 moderator.outbox,否则 - 转到管理员发件箱。
在messages/show.html.erb
我有:
<%= link_to "Reply", new_message_path, class: "btn-primary" %>
new.html.erb
<%= form_for @message do |f| %>
<%= f.text_area :body, class: "form-control", rows: 3 %>
<%= f.submit 'Send Message', class: 'btn btn-primary' %>
<% end %>
如何处理此类操作以获取此原始消息 ID 并回复?使用上面的代码,我遇到了一个错误:
nil:NilClass 的未定义方法“created_at”
解决方案
推荐阅读
- javascript - Redux 减速器参考
- visual-studio-code - 我在cmd窗口中使用了命令(代码。-r),但是-r是什么意思?(vscode)
- java - 正则表达式将第一个从“/token1/token2/token3”中拆分出来
- reactjs - 测试全栈 Apollo React 应用程序的建议?(即 Apollo Server BE;CRA + Apollo Client FE)
- spring - 基于 Kotlin 的 Spring RabbitListener 产生无限循环,试图发回 `kotlin.Unit`
- firebase - 如何在列表视图构建器中显示 3 个文本小部件?
- python - 相应地更新显示以使每帧产生函数
- arduino - Esp32 csi 转 rssi
- linux - OpenSSL 编译版本与安装版本不匹配?
- python - Python 模块导入:从 __init__.py 导入子模块