2012-02-12 4 views
0

を示されていない形式です。提出フォームの値は、対応するビュー。ここ

 <%= form_tag({:controller => "home", :action => "tellafriend"}, :method => "post", :class => "well form-horizontal") do %> 
      <div class="control-group"> 
      <label class="control-label" for="input01">Your name:</label> 
      <div class="controls"> 
       <input id="name" class="input-xlarge" type="text"/> 
       <p class="help-block">Type in your name so your friends know you sent this.</p> 
      </div> 
      </div> 

      <div class="control-group"> 
      <label class="control-label" for="input01">Friends email address:</label> 
      <div class="controls"> 
       <input id="emails" class="input-xlarge" type="text"/> 
       <p class="help-block">Who do you want to send this to? Separate different emails with a comma.</p> 
      </div> 
      </div> 

      <div class="control-group"> 
      <label class="control-label" for="input01">Message:</label> 
      <div class="controls"> 
       <textarea id="message" class="input-xlarge" type="text" rows="7"></textarea> 
       <p class="help-block">Attach a special message your friends will read.</p> 
      </div> 
      </div> 
      <button class="btn tell-a-friend-submit" type="submit">Send</button> 
     <% end %> 

そして、私のコントローラ:

class HomeController < ApplicationController 
    def index 
    end 

    def tellafriend 
    @name = params[:name] 
    @emails = params[:emails] 
    @message = params[:message] 
    end 
end 

そして、私のルートの設定ファイルで:

post "home/tellafriend" 

そして最後に、私のビュー:

<p><% @name %></p> 

なぜビューに示されている私は、「名前」に入力した値ではないでしょうか?

そして、私はPOSTを行うとき、私は私のコンソールで、これを参照してください。

がPOSTを開始 "/ホーム/ tellafriendを" 127.0.0.1ために2012-02-12夜02時16分10秒 -0400処理でレイアウト/アプリ内{ "UTF8" => "✓"、
"authenticity_token" => "2N1jNQ30cXCU4YANQ3FEZFBBTNhKobCQUwj1rEZ3Mxw ="}

レンダリングホーム/ tellafriend.html.erb:HTML

パラメータなどにHomeController#1 tellafriendにより、 (0.0ms) 20msで200 OKを完了しました(再生回数:11.9ms | ActiveRecord:0.0ms)

これは私の値が転記されていないことを意味しますか?提案?


編集:各HTML入力要素と値になりまし掲示されているためname属性に

を追加しました:

は127.0のためのPOST "/ホーム/ tellafriend" を開始。 0.1 at 2012-02-12 14:23:39 -0400 HomeController#tellafriendによる処理:HTML形式:{"utf8" => "✓"、 "authenticity_token" => "2N1jNQ30cXCU4YANQ3FEZFBBTNhKobCQUwj1rEZ3Mxw ="、レイアウト内"名" => "セルジオ"、 "電子メール" => "[email protected]"、 "メッセージ" => "ASDF"}レンダリングホーム/ tellafriend.html.erb /アプリケーション(0.4ms) 40msで200 OKを完了(Views:26.9ms | ActiveRecord:0.0ms)

ただし、ビューでも値はレンダリングされません。答えるために

<input name="name" id="name" class="input-xlarge" type="text"/> 

UPDATE:あなたのinputフィールドはname属性欠けている

答えて

1

ERBに

<% %>は、括弧内のコードを実行し、それがテンプレートに印刷されません。

また、あなたのビューに変更する必要があります:

<p><% @name %></p><p><%= @name %></p>

+0

OK]をクリックして、今コンソールによると、値が正しく掲示されているが、ビューはまだ値をレンダリングしていません。 –

+0

ああ、私は初めてこれを見逃しました:erbでは、結果を印刷するためにブラケットに '= 'を追加する必要があります。私は私の答えを更新しました。 – osahyoun

関連する問題