我是Rails和Android的新手,所以如果问题在某个地方得到解答,请不要怪我,但在寻找答案后我找不到任何答案。
问题:如何确保Rails创建或更新字段IP,该字段IP在数据库中也应该是唯一的。我从Android设备发送HTTP POST到“http://192.168.5.3:3000/users/create?user[user_ip]=”+ myIp +“user [user_name] =”+ name
所以在Rails的服务器端,Rails应该检查myIp是否已经存在,如果是,它应该将“user_name”更新为“name”,如果它找不到myIp,它应该创建一个新的记录两个领域。
我应该在user.rb模型中使用before_create吗?或者我该怎么做?我应该使用POST还是PUT?如果我应该使用PUT,那么如果用户存在,我就不知道id。
或者我不应该使用Rails操作“create”并编写自定义Webservice方法?
对不起这个可能很蹩脚的问题,但不知怎的,我无法弄明白!
提前感谢您的帮助!
答案 0 :(得分:0)
您想要使用PUT进行更新,使用POST进行创建。如果你知道用户存在,但你没有id,你会使用PUT请求,在更新方法中,你会有这样的东西:
def update
@user = User.find_by_ip(params[:ip])
if @user.update_attributes(...)
#success
else
#failure
end
end
同样,理想的方法是将id传递给更新,但如果你不能这样做,你就不想牺牲RESTful约定。