如何在模型验证中使用'params'?

时间:2010-10-25 21:34:41

标签: ruby-on-rails ruby

显然,我使用params [:category](来自路由...)来对同一个表中的一些文章进行分类,我只想将文章的类别列设置为params [:category]。我试着说

class Article < ActiveRecord::Base
  has_many :comments
  belongs_to :article_category # this is the model that has info about categories
  category = params[:category]
end

但是上面的验证抛出了

undefined local variable or method `params' for #<Class:0x3c4ad30>

错误。

  1. 如何使用params [:category] ​​??

  2. 此外,我如何确保params [:category]将成为article_categories数据库表中列出的类别之一?我不希望用户手动输入随机类别的地址并将其插入表格中。

1 个答案:

答案 0 :(得分:2)

如果文章具有属性:类别,那么当您执行

@article = Article.new(params[:article])

应自动设置category属性。听起来您只需要创建视图以将类别字段作为文章表单的一部分发送。

<%= form_for @article do |f| %>
  <%= f.text_input :category %>
  ...

这应该给你你想要的参数:

params[:article][:category]

如果“类别”是单独的模型,则可以使用嵌套表单。看到 http://railscasts.com/episodes/196-nested-model-form-part-1