Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Can';在我的表sqlite3表中找不到行_Ruby On Rails_Ruby_Ruby On Rails 3_Sql Update_Replace - Fatal编程技术网

Ruby on rails Can';在我的表sqlite3表中找不到行

Ruby on rails Can';在我的表sqlite3表中找不到行,ruby-on-rails,ruby,ruby-on-rails-3,sql-update,replace,Ruby On Rails,Ruby,Ruby On Rails 3,Sql Update,Replace,我正在尝试为我的一个表中的对象设置一个简单的编辑功能。这是我目前的代码,我在网上和书中都看到过,但它不起作用 def edit @fire_chief = FireChief.find(params[:id]) end 我所要做的就是找出如何在列表视图中编辑一个特定的消防队长,我可以继续编程,但我被卡住了 我收到的错误是“没有ID找不到消防队长” 如果我使用这段代码,它会发现编辑表单很好 def edit @fire_chief = FireChief.last end

我正在尝试为我的一个表中的对象设置一个简单的编辑功能。这是我目前的代码,我在网上和书中都看到过,但它不起作用

def edit
    @fire_chief = FireChief.find(params[:id])
 end
我所要做的就是找出如何在列表视图中编辑一个特定的消防队长,我可以继续编程,但我被卡住了

我收到的错误是“没有ID找不到消防队长”

如果我使用这段代码,它会发现编辑表单很好

def edit
    @fire_chief = FireChief.last
 end
但它总是调出最后一个要编辑的条目。我需要它来拉我点击的条目…可能是第1、第3或第5条,等等。我知道这有很多是多余的,但我只是想清楚我在尝试做什么

这是我的路由文件:

resource :timesheet do
    resource :command_officer
    resources :fire_chief
    resources :fire_fighters
    resource :safety_officer
    resources :emts
    resources :hazmat_specialists
    resources :command_vehicles
    resources :engines
    resources :emergency_supports
    resources :hazmat_units
    resources :field_units
    resources :pumpers
    resources :tankers
    resources :rescue_units
end
end
我刚刚将资源:fire_chief改为复数,所以现在是这个资源:fire_chief

但我现在得到了这个错误:

路由错误


未初始化的常量FireChiefController

要从
参数
获取
id
或任何其他需要的数据,您必须在url内传递数据,如以下示例所示:

/fireceive/2/编辑

这样,您的
edit
方法将知道id,并且该方法将起作用。您可以在路线内手动设置此选项,使路线如下所示:

get  "/firechief/:firechief_id/edit" => "firechiefs#edit", as => :edit_firechief
或者,如果您在您的路线内使用
资源
,则默认情况下它将工作

如果您实际上不想在url内传递任何数据,则可以实现基于会话的解决方案。创建一个方法,将
消防队长
id
存储在符合您需要的控制器中,或者如果您想在您已有的方法(如
消防队长35; Create
)中创建会话,只需添加此行即可:

session[:firechief] = #here you add the id of the firechief you want to store
现在,您可以在控制器上执行以下操作:

def edit
    @fire_chief = FireChief.find(session[:firechief])
end

视图中的代码是什么样子的?另外,在
log
目录下的
development.log
文件中,您应该能够看到传递给控制器的
params
散列。您使用什么URL访问该操作,那么,
rake routes
为您的消防队长控制器显示了什么?感谢所有响应的人…问题在于routes文件。