Rails要求创建模型的密钥

时间:2014-03-04 14:08:59

标签: ruby-on-rails web

我正在创建一个没有用户身份验证系统的简单博客/新闻网站。我决定使用简单的秘密密钥检查技术,让知道密钥的访问者发帖。

简而言之,要发布,您必须提供密钥。否则,它不应该将对象保存到数据库中。

这是我的代码。

class Post < ActiveRecord::Base

  attr_accessor :slaptazodis

  validate :passcheck
  validates :title, presence: true
  validates :body, presence: true

  def passcheck

    if :slaptazodis != "1234"
      errors.add(:base, 'Invalid pass')
    end
  end
end

所以,我在沙盒中创建了一个新模型,标题,正文和属性slaptazodis设置为1234.但是,当我检查错误时,控制台会一直显示“无效传递”。我究竟做错了什么?它是关于属性还是什么?提前谢谢你:)

1 个答案:

答案 0 :(得分:1)

您应该考虑将该逻辑放在帖子模型之外并将其移动到控制器。

在控制器中,您可以检查用户发送的参数,例如

if params[:slaptazodis] != "1234"

但是,如果您正在学习rails并且只想使其与现有解决方案一起使用,请从以下位置进行更改:

if :slaptazodis != "1234"

为:

if slaptazodis != "1234"

“:”告诉Rails它应该考虑符号后面的字符(几乎与字符串相同)只是为了澄清,因此你的代码几乎同如:

if "slaptazodis" != "1234"

当然,这总是真实的。