簡體   English   中英

NoMethodError 未定義的方法 `[]' 為 nil:NilClass

[英]NoMethodError undefined method `[]' for nil:NilClass

我有問題。 創建關注作者時,出現錯誤:

NoMethodError in FollowsController#create_author

undefined method `[]' for nil:NilClass

這是路線

Rails.application.routes.draw do
 resources :follows, only: %i(create destroy create_author destroy_author)
 post "/follows/create_author", to: "follows#create_author", as: :create_author
 delete "/follows/destroy_author/:id", to: "follows#destroy_author", as: :destroy_author
end

這是表格

<%= form_for(@follow, as: :create_author, url: create_author_path, remote: true) do |f| %>
  %= f.hidden_field :user_id, value: current_user.id if current_user != nil %>
  <%= f.hidden_field :type_follow, value: "author" %>
  <%= f.hidden_field :follower_id, value: @author.id %>
  <%= f.submit t(".submit"), id: "follow", class: "btn btn-primary" %>

這是控制器在這里輸入鏈接控制器

請幫助:(謝謝!

當發布這樣的錯誤時,它會幫助我們弄清楚您是否包含行號和至少一些堆棧跟蹤。 沒有它,我們將無法繼續提供幫助。

也就是說,您在控制器中使用[]地方位於find_userfind_author方法的底部。 具體來說,你做params[:follow][:follower_id] 如果params[:follow]為 nil,那么你得到的錯誤是有意義的。

要做的幾件事..

  • 在您的 rails 日志中驗證您認為發送到控制器的參數實際上正在發送。

  • 調整這兩種方法以使用follow_params而不是params

祝你好運!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM