如何从嵌套资源中获取ID?

时间:2011-10-13 00:26:16

标签: ruby-on-rails ruby-on-rails-3 routing routes ruby-on-rails-3.1

如何从嵌套资源访问ID?@peoples=@city.peoples中没有id people_id。我收到错误Couldn't find People without an ID。提前谢谢。

模型

    class City < ActiveRecord::Base
    has_many :peoples 
    end

   class People < ActiveRecord::Base
   belongs_to :city
   end 

控制器

  def show
  @city = City.find(session[:city_id])
  @peoples=@city.peoples
  @people=@peoples.find(params[:id])
  end

路线

   resources :city, :people
   resources :cities do
   resources :peoples  
   end 

2 个答案:

答案 0 :(得分:1)

您的错误消息是指模型Deal,但您的示例是指City和子People。无论如何,People(或@Peoples)中的每个@city.peoples实例都应将其ID属性设为id - 而不是people_id

答案 1 :(得分:0)

我认为你的问题源于这一行

@people = @peoples.find(params[:id])

您确定要设置params[:id]吗?你是如何链接到你的节目动作的?

另外我认为你不能在实例变量@peoples上调用find,因为我认为它是一个数组,但我可能错了。