0

在模型的页面上,我显示了两个链接“选择图片”和“拍照”。选择图片后,我成功返回该页面,并且选择的图像正确显示。但是,当我单击“拍照”时,相机打开,我拍照,调用页面加载显示的图像,然后立即显示该模型中的索引页面。

这两个程序都是相同的,只是一个调用“take_picture”,另一个调用“choose_picture”,有人能告诉我为什么在第二种情况下应用程序重定向到模型中的索引页面吗?

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>

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

日志:

我 09/09/2010 07:23:08:83 7a934000 RHO PropertyCon| 布局文件:/apps/app/layout_erb.iseq。内容大小:2202

我 09/09/2010 07:23:08:83 7a934000 应用程序| RhoApplication: 使用菜单 - {"Home"=>:home, Refresh"=>:refresh, "Sync"=>:sync,"Options"=>:options, "Log"=>:log, :separator=>nil , "关闭"=>:关闭}

我 09/09/2010 07:23:08:83 7a934000 RhoConnection| 调度结束

我 09/09/2010 07:23:08:161 7a934000 RhoConnection| 调度开始

我 09/09/2010 07:23:08:223 7a934000 应用程序| RhoApplication: 使用菜单 - {"Home"=>:home, "Refresh"=>:refresh, "Sync"=>:sync, "Options"=>:options, "Log"=>:log, :separator=>无,“关闭”=>:关闭}

我 09/09/2010 07:23:08:223 7a934000 应用程序| 在 RHO.serve_index 内:/apps/app/index_erb.iseq

我 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 回答