2016-06-04 2 views
1

Я получаю эту ошибку при запуске RSpec, и я понятия не имею, что от меня требуется? Я не знаю, почему это говорит, что permit не определено? и что это такое? 1:string вещь происходит? Если у кого есть идеи, я бы с удовольствием узнал. Вот моя ошибка и код для ясности.undefined method `allow 'for" 1 ": String

CONTROLLER: 

    class SubscribersController < ApplicationController 
def index 
    @subscriber = Subscriber.all 
end 

def new 
    @subscriber = Subscriber.new 
end 

def create 
    @subscriber = Subscriber.create(subscriber_params) 
    if @subscriber.save 
    flash[:notice] = "Subscriber Has Been Successfully Created" 
    redirect_to new_subscriber_path(:subscriber) 
    else 
    render "new" 
    end 
end 

def search 
    @subscriber = Subscriber.new 
end 

def visit 
    @subscriber = Subscriber.find_by_phone_number(params[:phone_number]) 
    if @subscriber 
    @subscriber.visit += 1 
    @subscriber.save 
    flash[:notice] = "thanks" 
    redirect_to subscribers_search_path(:subscriber) 
    else 
    render "search" 
    end 
end 


private 

def subscriber_params 
params.require(:subscriber).permit(:first_name, :last_name, :email, :phone_number) 
end 
end 

enter image description here

TEST:

require "rails_helper" 

    describe SubscribersController do 
    include Devise::TestHelpers 

    let(:user) { FactoryGirl.create(:user)} 


    it "creates a new subscriber" do 
    sign_in(user) 
    subscriber = FactoryGirl.create(:subscriber) 
    expect { post :create, :subscriber => subscriber }.to change(Subscriber, :count).by(1) 
    end 
end 

SUBSCIRBER ОБЪЕКТ

enter image description here Позвольте мне знать, если вам нужно, чтобы увидеть что-нибудь еще.

+0

похоже, что подписчику var передается подписчик, отображаются параметры и значение счета подписчика. Вы можете сделать это с помощью gem 'pry' –

ответ

2

Я считаю, что проблема заключается в том, что вы поставляете объект ruby, а не хэш значений, когда отправляете свой запрос в спецификации. Попробуйте использовать вместо этого следующее:

subscriber = FactoryGirl.attributes_for(:subscriber) 
expect { post :create, :subscriber => subscriber }.to ...