如何解决带有嵌套资源的 Rails 表单的 NoMethodError
我创建了一个带有嵌套资源的简单表单,如下所示:
<%= simple_form_for [@user,@spot] do |f| %>
<div class="form-inputs">
<%= f.input :location,label: false,input_html: { placeholder: "location" } %>
</div>
<div class="form-actions">
<%= f.button :submit,"Submit",class: "btn-submit btn-red btn-fill" %>
</div>
<% end %>
在我的路线中,我进行了相应的嵌套:
resources :users do
resources :spots
end
控制器中的方法:
def create
@spot = Spot.new(spot_params)
@spot.user = @user
authorize @spot
if @spot.save
redirect_to root_path
else
render :new
end
end
在创建操作之前,设置用户:
def set_user
@user = User.find(params[:user_id])
end
用户 ID 包含在强参数中:
def spot_params
params.require(:spot).permit(:spot_date,:time,:location,:number,:bird_id,:user_id)
end
我仍然收到 NoMethodError 并显示以下消息:
undefined method `spots_path' for #<#<Class:0x00007fba929a7028>:0x00007fba929a56d8>
Did you mean? user_spot_path
我在这里错过了什么?有什么想法吗?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。