Ruby on rails 如何在<;%=创建表格
我正在开发一个呼叫跟踪应用程序,学习rails和twilio。现在,我有一个表格,当它提交时,记录twilio的电话号码,以及数据库中的其他参数,然后购买电话号码 我让这个功能恢复了一些,但是我改变了一些东西,破坏了我在create操作中调用参数的能力 现在,当我运行代码时,我得到了错误:Ruby on rails 如何在<;%=创建表格,ruby-on-rails,ruby,twilio,Ruby On Rails,Ruby,Twilio,我正在开发一个呼叫跟踪应用程序,学习rails和twilio。现在,我有一个表格,当它提交时,记录twilio的电话号码,以及数据库中的其他参数,然后购买电话号码 我让这个功能恢复了一些,但是我改变了一些东西,破坏了我在create操作中调用参数的能力 现在,当我运行代码时,我得到了错误: Twilio::REST::RequestError in PhonesController#create Missing PhoneNumber parameter. Please specify the
Twilio::REST::RequestError in PhonesController#create
Missing PhoneNumber parameter. Please specify the phone number that you would like to purchase
以下是我提交的表格:
<% @numbers.each do |number| %>
<%= form_for(@phone) do |f| %>
<%= f.hidden_field :original_number, :value => params[:original_number] %>
<%= f.hidden_field :name, :value => params[:name] %>
<%= f.hidden_field :twilio_number, :value => number.phone_number %>
<div class="found_list">
<div class="found_phone_number">
<%= f.label :twilio_number, number.friendly_name %>
</div>
<div class="choose_found_number">
<%= f.submit "Choose This Number", :class => "btn btn-large btn-success" %>
</div>
</div>
<hr>
<% end %>
<% end %>
这是我的创作动作
def create
@user = current_user
@phone = @user.phones.build(params[:phone])
client = Twilio::REST::Client.new(@user.twilio_account_sid, @user.twilio_auth_token)
number = client.account.incoming_phone_numbers.create({:phone_number => params[:twilio_number]})
if @phone.save && number.true
flash[:success] = "Phone Number Created!"
redirect_to user_path
else
render new_phone_path
flash[:error] = "It looks like there were errors with the submission"
end
end
如果我编辑操作并将参数[:twilio_number]替换为“+16464900447”,则它将正常工作。
谢谢你坚持到现在!你有没有想过如何正确调用控制器中的twilio_number参数?或者,你认为还有其他问题吗?我尝试了@phone.twilio_number,而不是params[:twilio_number],似乎效果不错 我认为你的问题来自你的params散列的错误格式,实际上是
{
"utf8"=>"✓",
"authenticity_token"=>"/qJ6qATbNH2pZwxDPcKGifktWtAA5WrShbqb/2+lBbE=",
"phone"=>{
"original_number"=>"6463978797",
"name"=>"Website",
"twilio_number"=>"+16464900447"
},
"commit"=>"Choose This Number"
}
所以你可以看到,params[:twilio\u number]
不存在,存在的是params[:phone][:twilio\u number]
当然,你的解决方案和你做的一样有效
@phone = @user.phones.build(params[:phone])
您正在使用params[:phone]创建一个电话实例,该参数作为:twilio_number
键
@phone = @user.phones.build(params[:phone])