Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在一个控制器中访问另一种形式的rails?_Ruby On Rails_Form For - Fatal编程技术网

Ruby on rails 如何在一个控制器中访问另一种形式的rails?

Ruby on rails 如何在一个控制器中访问另一种形式的rails?,ruby-on-rails,form-for,Ruby On Rails,Form For,我有两个控制器:用户和地址。用户有许多地址 在用户/地址页面中,我在弹出窗口中编辑用户的一个地址(当用户单击“编辑”按钮时),如下所示: 在用户控制器中 def address set_user @addresses = Address.where(["user_id = ?", @user.id]) end 路由: resources :users do collection do get :address end res

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

在用户/地址页面中,我在弹出窗口中编辑用户的一个地址(当用户单击“编辑”按钮时),如下所示:

在用户控制器中

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

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

form\u for
只能接受参数作为对象,而不能接受集合

@addresses
实际上是一个集合

我的建议是:

  • 在用户页面中列出几个地址
  • 每个地址都链接到其编辑页面
  • 然后在编辑页面中设置此特定地址
    一个
    用户
    有许多
    地址
    ,您打算编辑哪个特定地址?您不需要地址id吗?是的,地址是一个集合。但实际上我需要在弹出窗口中实现这个编辑功能。这没关系。一旦您设置控制器和普通html版本正常工作,您就可以很容易地访问它。主要问题是您需要为表单设置正确的对象。
      def address
          set_user
          @addresses = Address.where(["user_id = ?", @user.id])
      end
    
     resources :users do
        collection do
          get :address
        end
        resources :addresses
      end