2016-06-04 14 views
1

Ich bekomme diesen Fehler beim Ausführen von RSpec und ich habe keine Ahnung, was es von mir will? Ich weiß nicht, warum es heißt permit ist undefiniert? und was ist das 1:string Sache passiert? Wenn jemand Ideen hat, würde ich es gerne wissen. Hier ist mein Fehler und Code für die Klarheit.undefined Methode `Erlaubnis 'für" 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 OBJECT

enter image description here Lassen Sie mich wissen, wenn Sie etwas anderes zu sehen.

+0

scheint, dass zu Abonnenten var der Subsriber übergeben wird, Show Params und Valus eines Abonnenten. Du kannst es mit dem Edelstein 'hebeln' machen –

Antwort

2

Ich glaube, das Problem hier ist, dass Sie ein Ruby-Objekt und nicht einen Hash der Werte liefern, wenn Sie Ihre Anfrage in der Spezifikation einreichen. Versuchen Sie stattdessen Folgendes zu verwenden:

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