0

モデルのページに、「ChoosePicture」と「TakePicture」の2つのリンクが表示されています。画像を選択した後、正常にそのページに戻り、選択した画像が正しく表示されています。ただし、[写真を撮る]をクリックすると、カメラが開き、写真を撮ります。呼び出しページに画像が表示されて読み込まれ、すぐにそのモデルのインデックスページが表示されます。

どちらの手順も同じですが、一方が「take_picture」を呼び出し、もう一方が「choose_picture」を呼び出すという変更のみがあります。2番目のケースでアプリがモデルのインデックスページにリダイレクトする理由を誰かに教えてもらえますか?

abc_controller.rb:

def takepic
        $id = @params['id']
        Camera::take_picture(url_for :action => :camera_callback)
  end

  def choosepic
        $id = @params['id']
        Camera::choose_picture(url_for :action => :camera_callback)
  end

  def camera_callback
        if @params['status']='ok'
                @abc = Abc.find($id)
                new_attributes = {"q1img"=>@params['image_uri']}
                @abc.update_attributes(new_attributes ) if @abc
                @abc.save
                WebView.navigate( url_for :action => :mypage, :query => {:id =>
$id})

        end
  end

呼び出しページ:mypage.bb.erb

<tr>
                           <td class="itemLabel">
                                        <%= link_to '[Choose Picture]',  :action => :choosepic , :query
=> { :id => @property.object }  %>
                                  </td>


                                  <td class="itemValue">
                                        <% if System::get_property('has_camera') %>
                                                <%= link_to '[Take Picture]',  :action => :takepic,  :query =>
{ :id => @property.object } %>
                                        <% end %>
                                  </td>
                   </tr>

===============

ログ:

I 09/09/2010 07:23:08:83 7a934000 RHO PropertyCon | レイアウトファイル:/apps/app/layout_erb.iseq。コンテンツサイズ:2202

I 09/09/2010 07:23:08:83 7a934000 APP | RhoApplication:メニューの使用-{"Home" =>:home、Refresh "=>:refresh、" Sync "=>:sync、" Options "=>:options、" Log "=>:log、:separator => nil 、"閉じる" =>:close}

I 09/09/2010 07:23:08:83 7a934000 RhoConnection | 発送終了

I 09/09/2010 07:23:08:161 7a934000 RhoConnection | 出撃開始

I 09/09/2010 07:23:08:223 7a934000 APP | RhoApplication:メニューの使用-{"Home" =>:home、 "Refresh" =>:refresh、 "Sync" =>:sync、 "Options" =>:options、 "Log" =>:log、:separator => nil、 "Close" =>:close}

I 09/09/2010 07:23:08:223 7a934000 APP | RHO.serve_index内:/apps/app/index_erb.iseq

I 09/09/2010 07:23:08:223 7a934000 RHO Rho :: RhoCon | inst_render_index

4

1 に答える 1

2

takepicメソッドとchoosepicメソッドの最後に、写真の撮影後にアプリを配置する場所へのリダイレクトを使用する必要があります。takepicまたはchoosepicでリダイレクトまたはレンダリングしないことにより、デフォルトを使用して、「takepic」または「choosepic」のビューをレンダリングしようとします。

これが必要なのは、camera_callbackメソッドで、結果が「ok」の場合にのみWebView.navigateを呼び出すためです。ユーザーが画像をキャンセルした場合、ナビゲーションは変更されません。

于 2010-09-09T16:16:41.957 に答える