0
我正在使用Twilio发送SMS消息来更改特定模型的(用户)属性(在本例中为金钱)的值。更改模型属性的值
我成功从Twilio POST中拉出参数,虽然没有运气将属性更改保存到模型属性中。有什么想法吗?
下面是从用户控制器 '更新' 我的代码:
def update
@user = User.find(params[:id])
respond_to do |format|
if @user.update_attributes(params[:user])
format.html { redirect_to @user, notice: 'User was successfully updated.' }
format.json { head :no_content }
else
format.html { render action: "edit" }
format.json { render json: @user.errors, status: :unprocessable_entity }
end
end
require 'rubygems'
require 'twilio-ruby'
@account_sid = 'AC0626c6d8dc0a4551b159161c5ca7ced2'
@auth_token = '**********************************'
# set up a client to talk to the Twilio REST API
@client = Twilio::REST::Client.new(@account_sid, @auth_token)
message_body = params["Body"]
from_number = params["From"]
if from_number == "+**********"
@user = User.find(1) # :select => :money
existing_money = @user.money
doug_sum = message_body.to_f + existing_money
@user.money = doug_sum
@user.save
puts "This is Doug's sum: #{doug_sum} and it has been saved"
else
puts "This is not a valid frump number"
end
end
这里是Heroku的服务器日志说:
2012-06-27T21:09:06+00:00 app[web.1]: Started POST "/users" for 184.73.31.10 at 2012-06-27 21:09:06 +0000
2012-06-27T21:09:06+00:00 app[web.1]: Processing by UsersController#create as HTML
2012-06-27T21:09:06+00:00 app[web.1]: Parameters: {"AccountSid"=>"AC0626c6d8dc0a4551b159161c5ca7ced2", "Body"=>"4", "ToZip"=>"13203", "FromState"=>"NY", "ToCity"=>"SYRACUSE", "SmsSid"=>"SMa973490ac1db98b25247b600fe068d6f", "ToState"=>"NY", "To"=>"+13158491369", "ToCountry"=>"US", "FromCountry"=>"US", "SmsMessageSid"=>"SMa973490ac1db98b25247b600fe068d6f", "ApiVersion"=>"2010-04-01", "FromCity"=>"SYRACUSE", "SmsStatus"=>"received", "From"=>"+13154368655", "FromZip"=>"13135"}
2012-06-27T21:09:06+00:00 app[web.1]: WARNING: Can't verify CSRF token authenticity
2012-06-27T21:09:06+00:00 app[web.1]: Rendered users/_form.html.erb (5.4ms)
2012-06-27T21:09:06+00:00 app[web.1]: Rendered users/new.html.erb within layouts/application (34.9ms)
2012-06-27T21:09:06+00:00 app[web.1]: Completed 200 OK in 47ms (Views: 36.7ms | ActiveRecord: 1.5ms)
2012-06-27T21:09:06+00:00 heroku[router]: POST frump.herokuapp.com/users dyno=web.1 queue=0 wait=0ms service=57ms status=200 bytes=1582
最后,这里的Twiml文件接收短信:
<?xml version="1.0" encoding="UTF-8" ?>
<Response>
<Redirect method="POST">http://frump.herokuapp.com/users</Redirect>
</Response>
以下是查看码:
<% @users.each do |user| %>
<tr>
<td><%= user.name %></td>
<td>$<%= user.money %></td>
<td><%= link_to 'Show', user %></td>
<td><%= link_to 'Edit', edit_user_path(user) %></td>
<td><%= link_to 'Destroy', user, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</table>
在此先感谢!
请发表您的视图代码。正如我在Heroku服务器日志中看到的,你的参数看起来像'Parameters:{“AccountSid”=>“AC0626c6d8dc0a4551b159161c5ca7ced2”,“Body”=>“4”,“ToZip”=>“13203”,“FromState”=>“NY “ToCity”=>“SYRACUSE”,“SmsSid”=>“SMa973490ac1db98b25247b600fe068d6f”,“ToState”=>“NY”,“To”=>“+ 13158491369”,“ToCountry”=>“US”,“FromCountry “=>”US“,”SmsMessageSid“=>”SMa973490ac1db98b25247b600fe068d6f“,”ApiVersion“=>”2010-04-01“,”FromCity“=>”SYRACUSE“,”SmsStatus“=>”received“ =>“+ 13154368655”,“FromZip”=>“13135”}'但它应该看起来像'参数:{“user”=> {“AccountSid”=> ..}} – abhas
发表视图代码 - 欣赏你的帮助: – dougiebuckets
嗨,我建议逐步逐步通过你的逻辑和检查你的假设在每种情况下。你真的检索一个用户对象吗?你有没有'From'号码? user.save是否更新存储在数据库中的值?这些都是代码可能被破坏的所有地方,最好检查每个代码。 –