Rhomobile Rhodes app中的页面导航问题

时间:2010-09-09 08:06:15

标签: ruby blackberry rhomobile rhodes

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

两个程序都是相同的,只有一个人调用的更改 '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>

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

LOG:

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”=&gt;:home,Refresh“=&gt;:refresh,”Sync“=&gt;:sync,”Options“=&gt;:options,”Log“=&gt;:log, :separator =&gt; nil,“关闭”=&gt;:关闭}

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”=&gt;:home,“Refresh”=&gt;:refresh,“Sync”=&gt;:sync,“Options”=&gt;:options,“Log”=&gt;:log ,:separator =&gt; nil,“关闭”=&gt;:关闭}

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

1 个答案:

答案 0 :(得分:2)

在你的takepic和choosepic方法结束时,你应该使用重定向到拍摄照片后你想要的应用程序。通过不在takepic或choosepic中重定向或渲染,您使用的是默认值,它会尝试渲染“takepic”或“choosepic”的视图。

您需要这样做,因为在您的camera_callback方法中,如果结果为“ok”,则只调用WebView.navigate。如果用户取消了图片,则不会更改导航。