3

XCode (iOS) では、JSON を使用して Rails データベースにアクセスしています。データベースからデータを取得し、データベースにデータを入力する特定のアクションを作成しました。

データベースにレコードを挿入し、作成したオブジェクトの ID をすぐに返したいと考えています。しかし、これらのアクションを「リンク」する方法が見つかりません。

データを挿入するには、次のようなリクエストを使用します。

    NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://..."]];
    [request setHTTPMethod:"@POST"];
    [request addValue:@"application/json" forHTTPHeaderField:@"content-type"];
    NSData *objectData = [NSData alloc];
    NSError *parseError = nil;
    objectData = [NSJSONSerialization dataWithJSONObject:myData options:NSJSONWritingPrettyPrinted error:&parseError];
    [request setHTTPBody:objectData]; 

データの取得には、次を使用します。

    NSMutableArray *myArray = [[NSMutableArray alloc] init];

    NSData *myContent = [NSData dataWithContentsOfURL:[NSURL URLWithString:@"http://..."]];
    NSError *parseError = nil;
    NSInputStream *myStream = nil;

    myStream = [[NSInputStream alloc] initWithData:myContent];
    [myStream open];

   myArray = [NSJSONSerialization JSONObjectWithStream:myStream options:NSJSONReadingAllowFragments error:&parseError];
4

1 に答える 1

0

コントローラーのjsonアクションでは、次のようなものを使用できると思います

def json 
  #-- do your magic to fill @object --
  if @object.save
    respond_to do |format|
      format.json { render :json => {:id => @object.id} } # Return the id
      # format.json { render :json => @object } #You can return the whole object
      format.html { render :string => "#{@object.inspect}" }
    end
  else
    render :json => {:error => "OMG Failed to save the model!"} 
  end
end
于 2012-10-16T06:54:59.830 に答える