Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.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 4 多对多复杂形式_Ruby On Rails 4_Many To Many - Fatal编程技术网

Ruby on rails 4 多对多复杂形式

Ruby on rails 4 多对多复杂形式,ruby-on-rails-4,many-to-many,Ruby On Rails 4,Many To Many,我不确定我的架构是否正确。我有一个多对多关系(事件用户),其中我有一个单独的页面(事件显示页面),用于连接用户与事件的关系。因为关系不是在用户或事件页面上创建的,所以我不确定如何执行此操作。我尝试过的事情: 创建事件嵌套属性表单。奇怪的是,表单生成的字段与存在关系的字段一样多。因此,如果我有一个有4个用户的事件,它将重复4个表单。这不是我想要的,我只想让用户添加另一个事件-用户-记录关系 我尝试创建一个事件用户表单。这很有效。我创建了一个新的控制器和新的路由。现在的问题是创建操作。一旦出现错误,

我不确定我的架构是否正确。我有一个多对多关系(事件用户),其中我有一个单独的页面(事件显示页面),用于连接用户与事件的关系。因为关系不是在用户或事件页面上创建的,所以我不确定如何执行此操作。我尝试过的事情:

  • 创建事件嵌套属性表单。奇怪的是,表单生成的字段与存在关系的字段一样多。因此,如果我有一个有4个用户的事件,它将重复4个表单。这不是我想要的,我只想让用户添加另一个事件-用户-记录关系
  • 我尝试创建一个事件用户表单。这很有效。我创建了一个新的控制器和新的路由。现在的问题是创建操作。一旦出现错误,如果我尝试渲染回旧的控制器>操作,则表单部分路径将完全错误,因为浏览器已重定向到控制器“事件\用户”URL 因此,它在EventUser文件夹中查找我的分区,而不是在原始事件文件夹中

    def create
        @event_user = EventUser.new(event_users_params)
    
        if @event_user.save
          redirect_to @event_user.event
        else          
          render 'events/show/'  # ERROR: Here it seems I need to redirect?
        end
      end
    
    可能的解决办法:

  • 使用重定向而不是渲染。但我会失去一些局部变量,对吗
  • 以不同的方式重新构建它,使其永远不会离开事件控制器

  • 这个rails cast帮助我设置了一个嵌套表单,这样用户就可以一次动态地添加和删除一个字段。如果您发布您在尝试设置嵌套表单时使用的代码,我可能会帮助您找出它不起作用的原因