튜토리얼을 따라 가려고합니다. 여기 Twilio 전화 번호 검색 및 구매 -> http://www.twilio.com/docs/howto/search-and- buyNoMethodError : 정의되지 않은 메소드 'each'for nil : NilClass
지금은 가능한 전화 번호를 나열하고 싶습니다. 지금 나는 find_numbers 컨트롤러를 가지고 있으며, 새로운 컨트롤러는 생성하고 파괴합니다.
새로운 액션에는 사용자가 채우는 매개 변수가 있으며 작성 액션은 쇼를 렌더링하고 쇼는 함께 표시하고 숫자를 나열합니다.
그러나, 내가 가지고있는 코드로, 나는 오류를 얻을
NoMethodError in Find_numbers#create
Showing C:/Sites/dct/app/views/find_numbers/show.html.erb where line #1 raised:
undefined method `each' for nil:NilClass
내가 검색 매개 변수가 올바르게 설정되지 않기 때문에 내 @numbers 변수, 전무를 반환 있기 때문에 생각합니다.
다음은 새로운 작업에 대한 내 생각이다 :
<div class="container">
<div class="row">
<div class="span6 offset3">
<%= form_tag("/find_numbers", :method => "post") do %>
<%= label_tag(:in_postal_code, "Near US postal code (e.g. 94117):") %>
<%= text_field_tag(:in_postal_code) %>
<%= label_tag(:near_number, "Near this other number (e.g. +4156562345)") %>
<%= text_field_tag(:near_number) %>
<%= label_tag(:contains, "Matching this pattern (e.g. 415***EPIC):") %>
<%= text_field_tag(:contains) %>
<%= submit_tag("Search", :class => "btn btn-large btn-primary") %>
<% end %>
</div>
</div>
</div>
이것은 find_numbers 컨트롤러
class FindNumbersController < ApplicationController
def new
@user = current_user
end
def create
@user = current_user
render 'find_numbers/show'
end
def show
@user = current_user
client = Twilio::REST::Client.new(@user.twilio_account_sid, @user.twilio_auth_token)
search_params = {}
%w[in_postal_code near_number contains].each do |p|
search_params[p] = params[p] unless params[p].nil? || params[p].empty?
end
local_numbers = client.account.available_phone_numbers.get('US').local
@numbers = local_numbers.list(search_params)
end
end
입니다 그리고 이것은, 쇼보기
<%= number.friendly_name %>
<%= number.phone_number %>
I입니다 나는 얻는다. 오늘 아침 (중국 시간) 이후로 대답에 더 가깝지만, 여전히 서클에서 뛰어 다니고 있습니다! 어떤 도움이라도 대단히 감사합니다.
썬케일, 당신은 훌륭합니다! 뷰 사이에 유지되는 변수를 알지 못했습니다 (예 : create 액션에서 @number를 정의한 경우 show 액션에 표시되지 않음). 의견을 보내 주시면 효과가 있습니다. 내가 제안한 책도 가져올거야. –
듣기가 대단히 기쁩니다! –