新手问题 从控制器的方法里向页面跳转的问题

waitingaminute · 2013年11月26日 · 最后由 waitingaminute 回复于 2013年12月03日 · 4756 次阅读

UserController.rb

def confirm_complete
     logger.info "**************         confirm_complete"
     @user_info = UserInfo.new(params[:user_info])
     @user = User.new(params[:user])
     login_id = @user.login
     @user.user_info = @user_info
     logger.info "00000000000000000000000000000000000000000000000"
     if @user.save
        logger.info "------------------save-----------------------"
        # render(:partial => 'confirm_page')
        #render(:text => "confirm_complete")    
     end    
end

向 confirm_complete.html.erb 跳转,跳不过去,谁能帮忙看看是哪里的问题,谢谢

redirect or render ?

走到 save 里了,数据也保存了,但没有跳到 view->user->confirm_complete 页面

#1 楼 @raven 如果什么都不写,默认的不是应该跳到这个方法对应的同名 erb 文件里吗?可是没有跳进去,我后来加了 render,就上边注释掉的,也跳不进去

默认是会渲染同名的 erb。但你给的信息太少 看不出问题,自己检查一下路径什么的吧 一般这样的问题都是一些疏忽导致的。

#4 楼 @raven 控制器下 user,view 下 user,路径没有问题,我再看看吧.....谢谢

跳转是专指 redirect 的,楼主要的是 render 吧。render 失败报什么错楼主要列出来啊。

#6 楼 @Rei 对啊,我要的是 render,我看 log 没有报错啊

**************         confirm_complete (pid: 5132)
  [4;36;1mUserInfo Columns (6.3ms)[0m   [0;1mSHOW FIELDS FROM `user_infos`[0m (pid: 5132)
00000000000000000000000000000000000000000000000 (pid: 5132)
  [4;35;1mSQL (48.6ms)[0m   [0mCOMMIT[0m (pid: 5132)
------------------save----------------------- (pid: 5132)
Rendering template within layouts/flows (pid: 5132)
Rendering user/confirm_complete (pid: 5132)
  [4;36;1mSchool Load (1.0ms)[0m   [0;1mSELECT * FROM `admins` WHERE (`admins`.`login_code` = 'takeshita') AND (admins.deleted = false) AND ( (`admins`.`type` = 'School' ) ) LIMIT 1[0m (pid: 5132)
  [4;35;1mCACHE (0.0ms)[0m   [0mSELECT * FROM `admins` WHERE (`admins`.`login_code` = 'takeshita') AND (admins.deleted = false) AND ( (`admins`.`type` = 'School' ) ) LIMIT 1[0m (pid: 5132)
Rendered layouts/_messages (0.0ms) (pid: 5132)
Completed in 389ms (View: 65, DB: 104) | 200 OK [http://localhost/user/confirm_complete] (pid: 5132)

#7 楼 @waitingaminute user/confirm_complete 写了什么内容,预期显示什么内容,实际显示什么内容。

#6 楼 @Rei 现在是点击按钮还在原页面,没跳过去

#7 楼 @waitingaminute layouts/flows 里面有没有 yield。

#9 楼 @waitingaminute 原来页面写了什么, show me the fu*king code!!!

#8 楼 @Rei 就是显示申请成功的一个画面

<iframe name="iframe" style="display:none;" width = "10" height="10"></iframe>
<div class="w980">
  <p class="path"><a href="#"><%= t('new.application_complete') %></a></p><!--申込完了-->
  <h1><%= t('new.application_complete') %></h1><!--申込完了-->
  <div class="flows ml20">
    <div class="process"> <img src="/user/images/flows/b_step03.jpg"  alt='<%= t('new.application_complete') %>'/> </div><!--申込完了-->
    <div class="complete">
    <div class="note"><%= t("new.order_completed") %></div><!--ご注文が完了いたしました。-->
    </div>
    </div>
  </div>  
  <div></div>
  <h1>111111111111111111111</h1>
</div>

实际上没有跳过去,还是原页面

#10 楼 @Rei layout 里有 yield,好几个页面都用,那几个都没问题.......

#11 楼 @Rei 原来页面提交按钮处这么写的

#14 楼 @waitingaminute 为什么要用 onclick 事件,这个 form 是普通的 form 还是 ajax 提交,用浏览器调试面板 Network 栏看请求情况,发出了什么请求,有没有错误。

#15 楼 @Rei 就是普通 form 提交,network headers 里显示:Request URL:http://localhost:3000/user/confirm_complete Request Method:POST Status Code:200 OK 我要跳转到的页面就是这个 url 的页面

#16 楼 @waitingaminute 信息不够,整个 request header 贴上来,还有 response 的内容。

#16 楼 @waitingaminute 我想给点建议,可是你给的信息不全..

#17 楼 @Rei 解决了,用这个 responds_to_parent,谢谢

#18 楼 @zhangyanan 解决了用这个 responds_to_parent,谢谢

#20 楼 @waitingaminute 出现问题的原因是什么?需要解释

#21 楼 @zhangyanan 最后也没找到是什么原因,就是看工程里别的方法有那么写的,试了下好用了,估计可能和页面引用有关吧。。。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号