我正在尝试按照教程在此处搜索和购买 Twilio 电话号码 --> http://www.twilio.com/docs/howto/search-and-buy
现在,我要做的就是列出可用的电话号码。现在我有一个 find_numbers 控制器,带有 new、create、destroy。
新动作有用户填写的参数,创建动作呈现节目,节目应该把它们放在一起,并列出数字。
但是,使用我拥有的代码,我得到了错误
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 变量返回 nil,因为搜索参数设置不正确。
这是我对新行动的看法:
<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 %>
从今天早上(中国时间)开始,我离答案越来越近了,但仍在兜圈子!非常感谢任何帮助。