RAILS 3.2 - 嵌套资源有很多:通过关系

时间:2012-04-09 05:03:36

标签: ruby-on-rails ruby-on-rails-3 nested-forms has-many has-many-through

伙计们我对这个问题变得十分坚定......并且根本无法弄清楚所有这些麻烦是如何产生的。 我真的需要一个神圣的帮助,或至少一些关于这个问题的教程和指南的建议。

我相信这在很多应用程序中都是一个非常常见的任务,但我找不到任何帮助,在这个意义上,不是在stackoverflow上,不是在google上,而是在我知道的其他rails论坛上......我开始觉得自己像个笨蛋!

问题

(1)模型(涉及的模型)

User.rb Item.rb(嵌套在用户中:例如user / 3 / item / 5)

(2)我想做什么

current_user(已登录的用户)可以创建一个Item,并且可以决定与其他许多用户共享或不共享。

通过这种方式,对于我们与之共享的用户,该项目也是可见的,也可以访问。

我知道这里涉及的是:

(a)has_many:通过项目和用户之间的关系 (b)我们可以调用共享的联合表(使用item_id和user_id) (c)最终为用户使用不同的名称,并使用:class_name指向用户

这并不难实现(周围有很多例子)。

实际上,混乱是如何构建控制器(项目控制器),以便一次性执行,创建新项目以及共享操作(这意味着在关节中设置参数)表,并最终创建与我们共享的许多用户一样多的记录 - array?)

另一个显然与控制器有关的问题是视图...如何将所有这些放在一个表单中,并允许current_user只需单击按钮,然后执行项目创建+共享操作

最后,但并非最不重要的是,我需要如何处理User与current_user相同的模型?

我真的不知道我需要阅读或查找以便让它工作,我很乐意看到一些示例代码,但与此同时我很想真正理解所有这些中的逻辑,以便能够在其他场景中复制它。

请有人帮助我......如果没有这样做,我就无法在我的应用程序开发中继续前进,这也是所有项目的关键部分。

非常感谢我将获得的每一点帮助。

1 个答案:

答案 0 :(得分:0)

好的,我已经解决了所有问题......最后这不是一项艰巨的任务(当你解决问题时总是很容易说:))

我唯一怀疑的是使用rails名称约定:

对于联合模型,使用像共享这样的名称可能会导致最终处理没有得到很好的处理吗?

为了解决我的问题而进行了许多尝试之后,我发现所有内容都已正确设置,并且只是将联合表名称从共享更改为共享,让魔法工作!!!