gpt4 book ai didi

html - ruby rails : a weird no method error in my controller?

转载 作者:数据小太阳 更新时间:2023-10-29 08:54:19 27 4
gpt4 key购买 nike

这是我在日志中得到的内容:

2011 年 3 月 18 日星期五 01:11:14 -0700 开始为 127.0.0.1 发布“/video_votes.437?type=up” 由 VideoVotesController 处理#create as 参数:{"authenticity_token"=>"DLyDcc4MJxK7gk4URiyyjvsLLl9hjtDChAyQRGVawKg=", "type"=>"up"}在 83 毫秒内完成

NoMethodError(你没有想到它时有一个 nil 对象!您可能期望有一个 ActiveRecord::Base 的实例。评估 nil.[] 时发生错误: app/controllers/video_votes_controller.rb:3:在“创建”中

当我单击调用创建方法的按钮时出现此错误。

这是我创建方法中的代码(注意第三行是 @video = Video.find(params[:video_vote][:video_id]) 行):

def create       
@video = Video.find(params[:video_vote][:video_id])
@vote = @video.video_votes.new
if params[:type] = "up"
@vote.value = 1
else
@vote.value = -1
end

if @vote.save
respond_to do |format|
format.html { redirect_to @video }
format.js
end
else
respond_to do |format|
format.html { redirect_to @video }
format.js {render 'fail_create.js.erb'}
end
end

下面是我 View 中调用创建方法的按钮的代码:

<div id='voting_div'>
<%= button_to "+1", video_votes_path(video, :type=> "up"), :remote => true %>
<div id='vote_display'>
<p id='votes'><%= pluralize video.vote_sum, 'Votes' %></p>
</div>
<%= button_to "-1", video_votes_path(video, :type=> "down"), :remote => true %>
</div>

这是怎么回事?如何修复此错误?

最佳答案

你的params hash是 {"authenticity_token"=>"DLyDcc4MJxK7gk4URiyyjvsLLl9hjtDChAyQRGVawKg=", "type"=>"up"}

在这个散列中没有名为“video_vote”的键,所以当您尝试访问params[:video_vote][:video_id]时,因为 params[:video_vote] 为零。它会抛出这个错误。

检查您的路线,或者您是否需要使用按钮“获取”更多值,因为您的 params 散列不知道“video_vote”键。

关于html - ruby rails : a weird no method error in my controller?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5348395/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com