gpt4 book ai didi

ruby-on-rails - Rails .create() 与 controller#create

转载 作者:行者123 更新时间:2023-12-04 06:23:57 25 4
gpt4 key购买 nike

这是一个 Rails 新手问题:

当我在模型上调用 create() 时,它会绕过关联的 Controller create 操作吗?

例如,这没有命中我的标签 Controller #create action:

user.tags.create(:content => new_tag)

但是如果我从一个表单 POST 到 tags#create 路由,那么它工作得很好。

我假设调用 user.tags.create 会调用 Controller 操作并始终在创建时运行其中的代码,但显然它仅在对该路由的 POST 期间。

我在这里错过了什么?

编辑:

有没有办法进行调用以确保运行 Controller 创建代码?我有一些代码可以通过永久链接查找标签并在必要时创建一个新标签,否则重新使用现有标签。使用 model.create() 不会运行任何代码。不过我可能“做错了”:P

最佳答案

模型对 Controller 一无所知,它只是一个表示存储在数据库中的状态的对象,可能还有一些额外的封装行为。 Controller 是一个响应对服务器发出的请求的对象。虽然默认脚手架会修改您的模型,但 Controller 甚至不必使用模型。

Controller 和模型是断开的,但只有逻辑上相关的类。

如果您有希望模型的所有用户都可以使用的代码,请向您的模型添加一个方法。然后从您的 Controller 以及您希望该行为的任何其他地方调用该方法。

关于ruby-on-rails - Rails .create() 与 controller#create,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5793599/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com