我对Rails相当新,我目前正试图围绕框架的模型/数据库方面。虽然,我在理解模型,数据库模式和视图/控制器之间的连接时遇到了一些麻烦。
例如,假设我有一个文章模型和文章模型has_many作者。如何使用实际文章/内容和使用相应作者数组的作者模型填充文章模型?
换句话说:如果我有
articles = Articles.search(params[:search])
在我的控制器中,Articles对象如何知道搜索我在视图中写的实际文章/内容?我无法理解这种联系。
我希望这是有道理的。
任何见解都将不胜感激! 感谢。
答案 0 :(得分:3)
你的问题中隐藏着许多问题,所以这里有一些答案:
Article
是一个类(注意,它是单数),它提供了对文章数据进行操作的类方法。这些类方法可以是:Article.new
,Article.find
(方法由ActiveRecord定义)。您还可以定义自己的类方法,例如Article.search,它可能会为您提供一组文章实例:articles
。
articles
仅在您的控制器操作的本地范围内可见。如果使用@articles
,则将变量提升为实例变量,然后可以将其用于渲染视图。 (视图渲染器可以访问控制器实例变量)
为了在数据库中存储模型中的数据,您可以使用Article
实例从ActiveRecord继承的方法,例如article.save
因此,将视图中的数据导入数据库的整个过程是:@article = Article.new' defines an empty model that can be loaded from a form in a view. If the form is submitted,
@ article = Article.create(params [:article])would save the data into the database. And
@ articles = Article.search (params [:search])`然后会返回一个包含对象的数组,这些对象可以在视图中呈现。
一些参考文献: