在我看到的每个创建或更新操作示例中,它们都有类似的内容。
def create
@user = User.new(params)
if @user.save
redirect_to @user
else
render 'new'
end
end
在这里如何redirect_to @user
显示控制器的动作。有人可以解释一下吗?
在Ruby(支持Rails的语言)中,您设置@instance_variables
为存储该请求的数据。尽管您可以在变量中存储多种类型的数据,但是Rails经常为@model
它们分配对象。
@user = User.find 1
#-> @user = <User id: "1", name: "john" .... >
这意味着无论何时使用助手(例如redirect_to
,甚至是path_helper
),您实际上都可以将对象传递给它,并且Rails会提取其所需的数据。
例如...
user_path(@user)
edit_user_path(@user)
在路径实例中,帮助程序提取id
对象的;redirect_to推断功能以将请求路由到该show
用户的路径。
传递redirect_to
接受一个对象,并对该对象调用show操作。
之所以如此重要,是因为要了解Ruby(&凭借Rails)是面向对象的。
面向对象的编程意味着您应该处理对象(而不是变量)。
对于Rails,每个模型都应该是一个对象。每次加载模型或创建模型的新实例时,都应该处理对象而不是数据。
因此,允许您传递@objects
诸如之类的方法redirect_to
只是使Rails更加面向对象的另一种方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句