我在我的控制器中设置一个变量,但由于某种原因它没有设置。我尝试了两种方法。
def update
# @available_cars = Car_info.where("user_id = ?", session[:user_id])
@available_cars = Car_info.find_by_user_id(session[:user_id])
end
在我看来,我这样做。
<% @available_cars.each do |car| %>
<%= car.name %>
<% end %>
我打算做的是将@available_cars填充到下拉列表中,但我甚至无法打印它们。我知道会话[:user_id]已设置,因为我打印并在其他地方访问它。
我收到此错误... 预期D:/RailsProjects/mileage/app/models/car_info.rb来定义Car_info
在我的控制器中 app / controllers / active_car_controller.rb:6:在`update'
任何帮助将不胜感激。 RoR新手。
答案 0 :(得分:3)
我看到你的控制器方法名为'udpate'而不是'update' - 这可能是你的问题吗?
答案 1 :(得分:1)
您需要将查询更改为:
@available_cars = Car_info.find_all_by_user_id(session[:user_id])
find_all
部分会为您提供所有记录,而find
只会让您获得第一个记录。写这个的另一种方法是:
@available_cars = Car_info.where("user_id = ?", session[:user_id])
理想情况下,您希望将您的班级称为CarInfo
,而不是Car_info
。