如何在Rails中填充模型?

时间:2013-05-20 08:03:57

标签: ruby-on-rails ruby ruby-on-rails-3

我对Rails相当新,我目前正试图围绕框架的模型/数据库方面。虽然,我在理解模型,数据库模式和视图/控制器之间的连接时遇到了一些麻烦。

例如,假设我有一个文章模型和文章模型has_many作者。如何使用实际文章/内容和使用相应作者数组的作者模型填充文章模型?

换句话说:如果我有

articles = Articles.search(params[:search])

在我的控制器中,Articles对象如何知道搜索我在视图中写的实际文章/内容?我无法理解这种联系。

我希望这是有道理的。

任何见解都将不胜感激! 感谢。

1 个答案:

答案 0 :(得分:3)

你的问题中隐藏着许多问题,所以这里有一些答案:

  • Article是一个类(注意,它是单数),它提供了对文章数据进行操作的类方法。这些类方法可以是:Article.newArticle.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])`然后会返回一个包含对象的数组,这些对象可以在视图中呈现。

一些参考文献: