多对多的复杂形式

时间:2016-01-28 16:39:10

标签: ruby-on-rails-4 many-to-many

我不确定我是否正确地构建了这个。我有一个多对多的关系(事件<>用户),我有一个单独的页面(事件显示页面),它连接用户与事件的关系。由于未在用户或事件页面上创建关系,因此我不确定如何执行此操作。我试过的事情:

  1. 创建事件嵌套属性表单。关于这一点的奇怪之处在于表单生成的字段与关系一样多。因此,如果我有一个包含4个用户的活动,它将重复4个表单。这不是我想要的,我只是想让用户添加另一个事件<>用户记录关系。
  2. 我尝试创建一个事件<>用户表格。这很好用。我创建了一个新的控制器和新的路线。现在问题出在Create操作上。一旦出现错误,如果我尝试渲染回旧控制器>动作,表单部分路径全部错误,因为浏览器已经重定向到控制器“event_user”URL。
  3. 因此它会在EventUser文件夹中查找我的部分内容而不是原始的Event文件夹。

    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
    

    潜在的解决方案:

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

1 个答案:

答案 0 :(得分:0)

这个rails cast帮助我设置了一个嵌套表单,以便用户可以一次动态添加和删除一个字段。 https://www.youtube.com/watch?v=amT27SfNhKM。如果您发布在尝试设置嵌套表单时使用的代码,我可能会帮助您弄清楚它为什么不起作用。