【问题标题】:mail_form gem rspec "undefined method `email' for"mail_form gem rspec“未定义的方法‘email’为”
【发布时间】:2017-12-29 02:46:08
【问题描述】:

如何编写测试 mail_form gem? Вut 测试给出错误。 如何关联 OrderForm 和 MailForm? 我有 : 型号:

class OrderForm < MailForm::Base
  attributes :name
  attributes :email
  attributes :phone_number
  attributes :order_name
  attributes :address
  attributes :file_1, attachment: true
  def mail_attachments
    [:file_1]
  end

控制器,其中:

class OrdersController < ApplicationController

  def create
    @order_form = OrderForm.new(params[:order_form])
    @order_form.deliver
    redirect_to root_path, notice: 'Заявка отправлена'
  end
end

结束视图(发送信件的形式): 订单/new.html.haml_spec.rb

   =form_for @order_form, url: orders_path, method: :post do |f|
         =f.text_field :name, placeholder: 'ФИО', class: 'gui-input'
         =f.text_field :email, placeholder: 'Email', class: 'gui-input'
         =f.text_field :phone_number, placeholder: 'Номер телефона', 

结束我写测试:

require 'rails_helper'
RSpec.describe "orders/new", type: :view do
    it do
        assign(:order, build(:order))
        render
      expect(rendered).to have_field :name
    end
end

【问题讨论】:

  • 并且,有消息错误:订单/新失败/错误:=form_for @order_form,url:orders_path,方法::post do |f| ActionView::Template::Error: 表单中的第一个参数不能包含 nil 或为空

标签: ruby-on-rails ruby rspec mail-form


【解决方案1】:

检查rake routes的输出,urlorders/new将执行orders#new动作并渲染视图orders/new.html.erb

GET /orders/new orders#new  return an HTML form for creating a new order

new.html.erb 将使用来自您的 orders#new 操作的变量。您缺少这些变量

class OrdersController < ApplicationController

  def new 
    @order_form = OrderForm.new
  end

  def create
    @order_form = OrderForm.new(params[:order_form])
    @order_form.deliver
    redirect_to root_path, notice: 'Заявка отправлена'
  end
end

【讨论】:

  • 我有 url orders/new、orders#new 操作和其他操作(send_message、show 等)。渲染视图 - 好的。我有 rspec 测试的问题:我有消息错误:orders/new Failure/Error: =f.text_field :email, placeholder: 'Email', class: 'gui-input' ActionView::Template::Error: undefined method #<0x007f9f9f0c6b60>
猜你喜欢
  • 1970-01-01
  • 2020-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-22
  • 2016-07-02
  • 1970-01-01
  • 2014-10-23
相关资源
最近更新 更多