如何在一个控制器中访问另一种形式的轨道?

时间:2014-01-18 08:10:44

标签: ruby-on-rails form-for

我有两个控制器:用户和地址。用户有很多地址。

在用户/地址页面中,我在弹出窗口中编辑用户的一个地址(当用户点击'编辑'按钮时),如:

<div id=new-add-win><a class=close></a>    
<%= form_for(@addresses) do |f| %>

出现错误:

undefined method `model_name' for ActiveRecord::Relation::ActiveRecord_Relation_Address:Class

在用户控制器中,

  def address
      set_user
      @addresses = Address.where(["user_id = ?", @user.id])
  end

路由:

 resources :users do
    collection do
      get :address
    end
    resources :addresses
  end

1 个答案:

答案 0 :(得分:1)

form_for只能接受参数作为对象而不接受集合。

@addresses实际上是一个集合。

我的建议是:

  1. 在用户页面中列出多个地址。
  2. 每个地址都链接到其编辑页面。
  3. 然后在编辑页面中设置此特定地址。