1

私は耳の後ろに緑色ですが、足場の :notice を変更して変数を追加することについて基本的な質問がありました。たとえば、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 %> を渡すなどの基本的なことをいくつか試してみましたが、これはコントローラー内で不自然に感じましたか?

この足場のこのフォーマット内で動的な値を追加することは可能ですか? それとも慣習に反していますか。

これが非常に初心者である場合は申し訳ありません。

4

1 に答える 1

5

Ruby で文字列に動的な値を挿入するには、Beesting が推奨される方法です。したがって、 で必要な場合は@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 に答える