gpt4 book ai didi

ruby-on-rails - rails 新手。索引操作不喜欢我的初始化方法。为什么?

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

我对 Rails 完全陌生,并且不熟悉使用代码来使页面正常工作。链接 localhost:3000/zombies/1 有效(显示操作)但 localhost:3000/zombies (索引操作)没有。以下是我的路线和 Controller :

路线是: 资源:僵尸

Controller 是:

 class ZombiesController < ApplicationController
before_filter :get_zombie_params

def index
respond_to do |format|
format.html # index.html.erb
format.json { render json: @zombies }
end
end

def show
@disp_zombie = increase_age @zombie, 15
@zombie_new_age = @disp_zombie
respond_to do |format|
format.html # show.html.erb
format.json { render json: @zombie }
end
end

def increase_age zombie, incr
zombie = zombie.age + incr
end

def get_zombie_params
@zombie=Zombie.find(params[:id])
@zombies = Zombie.all

end
end

这是为什么?

最佳答案

根据评论编辑答案

I get a page with the error: ActiveRecord::RecordNotFound in ZombiesController#index Couldn't find Zombie without an ID Rails.root: C:/Sites/TwitterForZombies Application Trace | Framework Trace | Full Trace app/controllers/zombies_controller.rb:85:in `get_zombie_params'

调用index Action 的url,localhost:3000/zombies不包含id参数。

这就是应用程序在 @zombie=Zombie.find(params[:id]) 失败的原因。

如果您想解决此问题,请仅在 show 操作上使用 before_filter

before_filter :get_zombie_params, only: :show

然后按照我最初的建议将其插入到索引操作中。

def index
@zombies = Zombies.all
...
end

关于ruby-on-rails - rails 新手。索引操作不喜欢我的初始化方法。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13039833/

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