ruby-on-rails - ruby on rails - 未定义的方法有效吗?

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

我正在关注 ryan bates 的屏幕截图 http://railscasts.com/episodes/219-active-model关于如何在没有数据库的情况下验证表单

但我总是得到一个未定义的方法有效?

这是我的 Controller

def create
  @contacts = FreshDeskApiWrapper.new().post_tickets(params[:contacts])
  if @contacts.valid?
    redirect_to new_contact_path 
  else
   flash[:notice] = "OOps"
   render action: 'new'
 end

结束

我好像可以打电话

 $ FreshDeskApiWrapper.new().valid?

在控制台中很好,但当我添加时它似乎不喜欢它

 $ FreshDeskApiWrapper.new().post_tickets(params[email: 'user@example.com']).valid?

我得到一个未定义的方法有效吗?

我对此有些不理解

这是我在模型文件夹中创建的 fresh_desk_api_wrapper.rb 文件

  class FreshDeskApiWrapper
  include ActiveModel::Validations
  include ActiveModel::Conversion
  extend ActiveModel::Naming

  attr_accessor :config, :client, :subject, :email, :custom_field_phone_number_50754,      :custom_field_company_50754, :description
  validates :subject, presence: true   
  validates :email, presence: true  
  validates_format_of :email, :with => /^[-a-z0-9_+\.]+\@([-a-z0-9]+\.)+[a-z0-9]{2,4}$/i

  def initialize(attributes = {})
    attributes.each do |name, value|
    send("#{name}=", value)
  end
  self.config = YAML.load_file("#{Rails.root}/config/fresh_desk.yml")[Rails.env]
  self.client = Freshdesk.new(config[:url], config[:api_key], config[:password])
  end

  def post_tickets(params)
    client.post_tickets(params)
  end

  def persisted?
    false
  end
end

post_tickets 是我在那里定义的东西

最佳答案

您可以在一个对象的单个实例上调用 valid?,而不是多个。 @contacts 将暗示您的 post_tickets 方法正在返回多个对象。

关于ruby-on-rails - ruby on rails - 未定义的方法有效吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18168404/

相关文章:

ruby-on-rails - 从 Rails 3 项目的 lib 目录中访问模型

ruby-on-rails - 带命令行参数的 Rake 任务环境变量

ruby-on-rails - Ruby 变量定义

ruby-on-rails - 我需要在 rails 路线前加斜杠吗

ruby-on-rails - Rails 本地主机不工作

mysql - 如何在mysql中使用ruby的用户定义变量?

ruby-on-rails - validates_length_of :maximum and :minimum on ruby on rails 的自定义错误消息

ruby-on-rails - 找不到 ApplicationController 中定义的操作

ruby - 从 Ruby 中的 UTF-16 编码文件中读取内容

ruby-on-rails-3 - 使用回形针和 Amazon s3 的开发错误