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文件。