[英]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_user
和find_author
方法的底部。 具体来说,你做params[:follow][:follower_id]
。 如果params[:follow]
为 nil,那么你得到的错误是有意义的。
要做的几件事..
在您的 rails 日志中验证您认为发送到控制器的参数实际上正在发送。
调整这两种方法以使用follow_params
而不是params
。
祝你好运!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.