RoR,将变量传递给视图会给出一个空对象

时间:2011-08-01 21:30:02

标签: ruby-on-rails-3 variables

我在我的控制器中设置一个变量,但由于某种原因它没有设置。我尝试了两种方法。

  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新手。

2 个答案:

答案 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