Rails - 控制器:通知 - 添加变量?

时间:2010-11-19 04:18:07

标签: ruby-on-rails ruby controller scaffolding

我是耳朵后面的绿色,但有一个关于修改脚手架的基本问题:注意添加一个变量。例如,rails为我创建了以下create方法:

 def create
    @order = Order.new(params[:order])

    respond_to do |format|
      if @order.save
        format.html { redirect_to(@order, :notice => 'Order was successfully created.') }
        format.xml  { render :xml => @order, :status => :created, :location => @order }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @order.errors, :status => :unprocessable_entity }
      end
    end
  end

我要做的是添加一个变量:notice,以便它可以打印具体创建的订单(或使用update方法编辑)。我尝试了一些基本的东西,例如传递<%= order.id%>,虽然我觉得这在控制器中看起来不自然?

是否可以在此脚手架的此格式中添加动态值?或者它违反了惯例。

我很感激帮助,对不起,如果这是非常新鲜的话。

1 个答案:

答案 0 :(得分:4)

Beestings是在ruby中将动态值插入字符串的首选方法。因此,如果您希望@order.id中有:notice,则可以执行此操作:

 def create
    @order = Order.new(params[:order])

    respond_to do |format|
      if @order.save
        format.html { redirect_to(@order, :notice => "Order id # #{@order.id} was successfully created.") }
        format.xml  { render :xml => @order, :status => :created, :location => @order }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @order.errors, :status => :unprocessable_entity }
      end
    end
  end