Rails - 控制器:注意 - 添加变量?

Kom*_*mbo 1 ruby controller ruby-on-rails 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
Run Code Online (Sandbox Code Playgroud)

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

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

感谢您的帮助,对不起,如果这是非常新手。

Ale*_*lex 5

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
Run Code Online (Sandbox Code Playgroud)