我是Rails的新手,并且一直在关注几个缺乏实时网络应用程序完整性的教程。他们展示了如何在每个文件中使用模型 - 视图 - 控制器,但我没有找到一个展示如何使用一个表单创建各种模型,使用几个控制器的方法使用它们之间的关联。
用例:
我有一个用户模型,一个与之关联的帐户模型。我在irb中测试过它,但是在控制器中,我需要有一个User对象来将用户与帐户相关联,但是在创建用户时,它只是用户的表单数据,由用户控制器管理,如教程和帐户在它自己的视图中分开,由它自己的控制器管理。
创建帐户时如何使用用户控制器中创建的用户。我想做的最多,它是在创建用户时在同一视图中创建帐户。但我非常喜欢它,它是一个教程,展示如何对视图和控制器进行全面控制,以及如何在设计中容纳这些元素。谢谢
答案 0 :(得分:1)
您正在寻找的可能是"嵌套属性"。
以下是详细文档:http://apidock.com/rails/ActiveRecord/NestedAttributes/ClassMethods/accepts_nested_attributes_for
否则,您可能会遇到Rails,因为它是MVC的特殊变体。您没有从其他控制器调用控制器操作 - 控制器处理对Web请求的响应,而不是与数据的交互。那是模特的。
说出你要求的内容有点难,但我认为你实际上只是因为出乎意料的简单而被绊倒了。您可以通过User
object / singleton / class事物访问user-model0中的所有内容。例如,User.find(1)
。所有控制器和所有视图都可以访问User
(Account
)。只需在需要时使用它们!
评论编辑:
def action
user = User.new(params[:user])
user.save
account = Account.new(params[:account])
account.user = user
account.save
end
然而!这种做事方式几乎不能很好地处理错误。你真正想要的是使用嵌套属性,它允许你创建帐户作为用户的一部分,反之亦然。