rails中render 和 redirect_to的区别, each只能用在数组中,如果只有一个或者零个项,用each方法会报错undefined method `each' for #...

在render中,即使有:action,那么也仅仅是取对应的view中的模板(html.erb)而已,所以这里即使浏览器中的url是/orders/xcreate,但是显示的界面是/app/views/orders/xshow的代码

  def xcreate
    flash.now[:notice] = "bb"
    @order = Order.new(params[:order])
    if @order.save
	  flash[:notice] = "yes"
	  render(:action => ‘xshow‘)
	else
	  flash.now[:alert] = "no"
	end
  end

在redirect_to中,直接重定向到要去的界面,所以在/orders/new中点击提交按钮后,不会到/order/xcreate的url,浏览器中直接跳转到/orders(就是/orders/index)去了。

  def xcreate
    flash.now[:notice] = "bb"
    @order = Order.new(params[:order])
    if @order.save
	  flash[:notice] = "yes"
	  redirect_to(:action => ‘index‘)
	else
	  flash.now[:alert] = "no"
	end
  end

  

在index.html.erb中

<% @order.each do |oo| %>
  <div>
    <%= oo.name %>   <%= link_to ‘see‘, {:controller => "orders",:id => oo, :action => "xshow"} %><br/>
    <%= sanitize(oo.des) %>
  </div>
<% end %>

  

作为示例,第一个render是定向到xshow,第二个redirect_to是定向到index,

是因为第一个只有一个实例,但是index中用的是数组,所以如果render index的话,会看见其中报错undefined method `each‘ for #...  是因为这个不是一个数组。需要修改下代码才行。

rails中render 和 redirect_to的区别, each只能用在数组中,如果只有一个或者零个项,用each方法会报错undefined method `each' for #...

时间: 2024-10-12 12:43:22

rails中render 和 redirect_to的区别, each只能用在数组中,如果只有一个或者零个项,用each方法会报错undefined method `each' for #...的相关文章

vuex中filter的使用 &amp;&amp; 快速判断一个数是否在一个数组中

vue中filter的使用 computed: mapState({ items: state => state.items.filter(function (value, index, arr) { return index < 5 }) }), 如上所示,对于vuex,我们在使用mapState获取state时, 可以使用filter来过滤其中的元素,在filter的回调函数中接受三个参数,第一个是value,即每一个元素的值: 第二个是index, 即每一个元素所在的index, 第三个

偶然在博客中见对百度一个面试题的探讨,写些自己的看法以及指出探讨中不对的观点:百度面试题:求绝对值最小的数 有一个已经排序的数组(升序),数组中可能有正数、负数或0,求数组中元素的绝对值最小的数,要求,不能用顺序比较的方法(复杂度需要小于O(n)),可以使用任何语言实现 例如,数组{-20,-13,-4, 6, 77,200} ,绝对值最小的是-4。

今天申请了博客园账号,在下班后阅览博客时发现了一个关于百度面试题探讨的博客(其实是个很基础的问题),此博客url为:http://www.blogjava.net/nokiaguy/archive/2013/01/30/394920.html 其中下面有人评论为: 有序列表查找显然二分啊,博主貌似对java的arrays和collections不是很熟. private static int getMinAbsoluteValue(final int[] source) { int index

Yii中render和renderPartial的区别

在进行页面输出渲染的时候. 1.render 输出父模板的内容,将渲染的内容,嵌入父模板.|2.renderPartial 则不输出父模板的内容.只对本次渲染的局部内容,进行输出. 同时还有个重要的区别: render 函数内部默认执行processOutput($output)函数, 会将把组件,比如 CTreeView 里面注册到 CClientScript 里面的需要的脚本进行渲染输出. 而renderPartial() 默认不自动渲染输出客户端脚本,需要进行参数的指定,才会输出:rend

scala中计算的的一个小问题,超出Int.maxValue时不会报错

如果小于Int.max时他不会报错 def sumcount(str:String): Int ={ val ints = for(c <- str)yield { println(c.asInstanceOf[Int]) ; c.asInstanceOf[Int]} println(ints.reduce(_*_)) println(Int.MaxValue) ints.sum } sumcount("Hello") 721011081081118251528962147483

做一个登陆的文件操作,存到文件中是一个字典的形式{name:[pwd,tel]},为啥会报错 ?请指点

def register(name, pwd, tel): with open('userdate.txt', 'a', encoding='utf-8') as f: new = {} new[name] = [pwd,tel] f.write('\n' + str(new)) return True def same(name): with open('userdate.txt', 'r', encoding='utf-8') as f: for i in f: for k in eval(

转 浅谈C++中指针和引用的区别

浅谈C++中指针和引用的区别 浅谈C++中指针和引用的区别 指针和引用在C++中很常用,但是对于它们之间的区别很多初学者都不是太熟悉,下面来谈谈他们2者之间的区别和用法. 1.指针和引用的定义和性质区别: (1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元:而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已.如: int a=1;int *p=&a; int a=1;int &b=a; 上面定义了一个整形变量和一个指针变量p,该指针变量指向a

java中重载与重写的区别

首先我们来讲讲:重载(Overloading) (1) 方法重载是让类以统一的方式处理不同类型数据的一种手段.多个同名函数同时存在,具有不同的参数个数/类型. 重载Overloading是一个类中多态性的一种表现. (2) Java的方法重载,就是在类中可以创建多个方法,它们具有相同的名字,但具有不同的参数和不同的定义. 调用方法时通过传递给它们的不同参数个数和参数类型来决定具体使用哪个方法, 这就是多态性. (3) 重载的时候,方法名要一样,但是参数类型和个数不一样,返回值类型可以相同也可以不

jQuery中this与$(this)的区别

jQuery中this与$(this)的区别 起初以为this和$(this)就是一模子刻出来.但是我在阅读时,和coding时发现,总不是一回事,这里就谈谈this与$(this)的区别. AD: jQuery中this与$(this)的区别 $("#textbox").hover( function() { this.title = "Test"; }, fucntion() { this.title = "OK”; } ); 这里的this其实是一个

asp.net中virtual和abstract的区别分析

这篇文章主要介绍了asp.net中virtual和abstract的区别,较为详细的分析了virtual与abstract的概念与具体用法,并以实例的形式予以总结归纳,需要的朋友可以参考下 本文实例分析了asp.net中virtual和abstract的区别,分享给大家供大家参考.具体分析如下: 一.Virtual方法(虚方法) virtual 关键字用于在基类中修饰方法.virtual的使用会有两种情况:情况1:在基类中定义了virtual方法,但在派生类中没有重写该虚方法.那么在对派生类实例