1

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

 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 添加一个变量,以便它专门打印创建的订单(或使用更新方法编辑的订单)。我尝试了一些基本的东西,例如传递 <%= order.id %>,虽然我觉得这在控制器中看起来不自然?

是否可以在这种脚手架格式中添加动态值?还是违反公约。

感谢您的帮助,抱歉,如果这是非常新的。

4

1 回答 1

5

Beesting 是在 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
于 2010-11-19T04:21:54.370 回答