我已經參加了Michael Hartl的Rails 3 Tutorial應用程序,並在幾個領域對其進行了擴展。但是,我保持登錄和會話處理相同。我想與iPhone應用程序接口,但我不知道如何。我看過RestKit和Objective Resource,但認爲我會推出自己的產品。我一直在用cURL進行測試,但迄今爲止沒有運氣。我一直在使用這個命令Rails 3教程cURL/iOS登錄
curl -H 'Content-Type: application/json' -H 'Accept: application/json' -X POST http://www.example.com/signin -d "{'session' : { 'email' : '[email protected]', 'password' : 'pwd'}}" -c cookie
正如在3教程中,我使用的會話Rails的。
這些路線:
match '/signin', :to => 'sessions#new'
match '/signout', :to => 'sessions#destroy'
這是控制器:
class SessionsController < ApplicationController
def new
@title = "Sign in"
end
def create
user = User.authenticate(params[:session][:email],
params[:session][:password])
if user.nil?
flash.now[:error] = "Invalid email/password combination."
@title = "Sign in"
render 'new'
else
sign_in user
redirect_back_or user
end
end
def destroy
sign_out
redirect_to root_path
end
end
沒有模型和你的表單登錄。這裏是表格的HTML:
<h1>Sign In</h1>
<%= form_for(:session, :url => sessions_path) do |f| %>
<div class="field">
<%= f.label :email %></br>
<%= f.text_field :email %>
</div>
<div class="field">
<%= f.label :password %></br>
<%= f.password_field :password %>
</div>
<div class="actions">
<%= f.submit "Sign in" %>
</div>
<% end %>
<p> New user? <%= link_to "Sign up now!", signup_path %></p>
對不起,如果這是太多的信息,我想盡可能地給。
基本上,我想能夠從本地iPhone應用程序訪問我的Rails數據庫。如果有人有關於如何登錄,存儲會話,然後撥打其他網站的建議,我將不勝感激。
但是,如果這是不可能的,一個工作cURL請求可能會讓我朝着正確的方向前進。謝謝!
這可能是一個愚蠢的問題,但我還是比較新的Rails。 format.json到底做了什麼?這是否允許我將參數作爲JSON發送?如果我現在format.js,將其改爲format.json擰什麼了? – NSchulze 2012-08-01 18:27:15
是的,它發送參數爲JSON。 Json是JavaScript的一個子集,儘管不是所有的JavaScript響應都是json響應。 Json可以被JavaScript讀取,並且它是一種將數據從服務器傳遞到JavaScript的快速而有效的方法。 – JohnMerlino 2012-08-01 18:31:13
很酷。那麼是我的cURL命令不工作的原因,因爲它是format.js?還是我在那裏的基地? – NSchulze 2012-08-01 21:14:31