首页 > 解决方案 > 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”

标签: ruby-on-railsruby

解决方案


推荐阅读