我有一張表,用戶可以添加數據,我還包括一個按鈕,供用戶刪除一行數據:未定義的方法`銷燬'的零:NilClass找不到我的數據的ID
<tbody>
<% @jobs.each do |job| %>
<tr>
<td><%= link_to job.job_title, job.url, :target => "_blank" %></td>
<td><%= job.company %></td>
<td><%= job.location %></td>
<td><%= link_to "", list_url(job), method: :delete, class: "fa fa-trash-o" %></td>
</tr>
<% end %>
</tbody>
但是,當按下刪除按鈕時,我得到一個「未定義的方法`銷燬'爲零:NilClass」錯誤。在我的服務器日誌中,它表示ID爲空,我似乎無法獲取該特定行數據的ID。
我已經看過其他類似的Stackoverflow問題,我問的人,但找到的解決方案並沒有爲我工作。
僅供參考下面是我的路線,涉及到添加,顯示和刪除數據:
get '/jobs' => 'search#list', as: 'list'
post '/jobs' => 'search#create'
delete '/jobs' => 'search#destroy'
而且我的控制器:
def new
@job = Job.new
end
def create
@job = Job.new(job_params)
if @job.save
redirect_to list_url, notice: "You've successfully added the job to the list"
else
render 'search', notice: "Something went wrong, please try again"
end
end
def list
@jobs = Job.all
@job = Job.find_by_id(params[:id])
end
def destroy
@job = Job.find_by_id(params[:id])
@job.destroy
redirect_to list_url, notice: "Job destroyed"
end
def job_params
params.require(:job).permit(:job_title, :company, :location, :url)
end
請發佈錯誤消息和它發生的位置。 –
它出現在我的控制器的'@ job.destroy'中 錯誤提示「SearchController#中的NoMethodError destroy,未定義的方法destroy'for nil:NilClass」 – Reuben
你知道使用'find_by_id'和'find'時的區別嗎? 'find_by_id'甚至沒有找到並且沒有發現錯誤。 '發現'崩潰。所以你必須確保在使用'find_by_id'時發現了一條記錄 – devanand