2011-07-12 6 views
0

1つのデータベース列に一意のプレーヤIDを持つ複数の質問と回答を保存します。レールを使用して1つのデータベース列に複数のフィールドを保存する方法

データベース列player_answerは、次のようになります。

player_id |質問|答え

1 |インド|ニューデリー

1 |アメリカ|ワシントンD.C.

1 |イギリス|ロンドン

などです。

これは

<%= form_for(@player_answer) do |f| %> 
    <% if @player_answer.errors.any? %> 
    <div id="error_explanation"> 
     <h2><%= pluralize(@player_answer.errors.count, "error") %> prohibited this player_answer from being saved:</h2> 

     <ul> 
     <% @player_answer.errors.full_messages.each do |msg| %> 
     <li><%= msg %></li> 
     <% end %> 
     </ul> 
    </div> 
    <% end %> 

    <div class="field"> 
    <%= f.label :player_id %><br /> 
    <%= f.text_field :player_id, :readonly => true, :value => Player.find(params[:playerid]).id %> 
    <!--<#%= f.text_field :player_id %>--> 
    </div> 

<% (1..10).each do |i| puts i %> 

<table> 
    <tr> 

    <td> 
    <div class="field"> 

    <%= f.label :question_id %><br /> 
    <%= f.text_field :question_id %> 

    </div> 
    </td> 
    <td> 
    <div class="field"> 
    <%= f.label :answer %><br /> 
    <%= f.text_field :answer, :readonly => true, :value => params[:playeranswerid].to_i %> 
    </div> 
     </td> 

    </tr> 
</table> 


<% end %> 


    <div class="field"> 
    <%= f.label :answer_after_self_scoring %><br /> 
    <%= f.text_field :answer_after_self_scoring %> 
    </div> 
    <div class="actions"> 
    <%= f.submit %> 
    </div> 
<% end %> 

私/views/player_answers/_form.html.erbであり、ここで クラスPlayerAnswersController < ApplicationControllerに #GET/player_answers #GET/player_answersコード - 私のplayer_answers_controller.rbファイルです。 XML DEFインデックス@player_answers = PlayerAnswer.all

respond_to do |format| 
    format.html # index.html.erb 
    format.xml { render :xml => @player_answers } 
end 

#GET/player_answers/1 #GET /player_answers/1.xml DEF示し@player_answer = PlayerAnswer.find(paramsは[:ID])

respond_to do |format| 
    format.html # show.html.erb 
    format.xml { render :xml => @player_answer } 
end 

#GET/player_answers /新しい #のGETの/player_answers/new.xml デフ新しい @player_answer = PlayerAnswer.new

respond_to do |format| 
    format.html # new.html.erb 
    format.xml { render :xml => @player_answer } 
end 

GET/player_answers/1 /編集 端

位DEF @player_answer = PlayerAnswer.find(paramsは[:ID])を編集 端

#1 POST/player_answers #のPOSTの/player_answers.xmlを DEF @player_answer = PlayerAnswer.new([:player_answer]のparams)を作成

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

#PUT/player_answers/1 #のPUTの/player_answers/1.xml DEF @player_answer = PlayerAnswer.find(paramsは[:ID])を更新

respond_to do |format| 
    if @player_answer.update_attributes(params[:player_answer]) 
    format.html { redirect_to(@player_answer, :notice => 'Player answer was successfully updated.') } 
    format.xml { head :ok } 
    else 
    format.html { render :action => "edit" } 
    format.xml { render :xml => @player_answer.errors, :status => :unprocessable_entity } 
    end 
end 

位/ DELETE player_answers/1 #DELETE /player_answers/1.xml def destroy @player_answer = PlayerAnswer。 エンド

は私が先に行くと、この問題を解決する方法を教えてください エンド

respond_to do |format| 
    format.html { redirect_to(player_answers_url) } 
    format.xml { head :ok } 
end 

player_answer.destroy @:([ID]のparams)を見つけます。

p.s.私はレールを使い始めたばかりです。これはおそらく私が生きている最初のプロジェクトです。助けてください!!

+0

申し訳ありませんが長い質問です。 – Samir

答えて

0

それはあなたが

でトラブルを抱えているか、あなたの質問から明らかではないが、あなたが同じplayer_idで新しいレコードを作成しようとしているエラーが出るのですか?バージョンあなたを」レールを指定didntのよう -

script/generate migration create_player_answers player_id:integer question:string answer:string 

またはrais generate: - もしそうならuniqのインデックスを持っていないことを確認player_idを作るか、主要ではない、あなたのレイアウトはこれを試すためのキー

は、テーブル/モデルを作成するには

1

複数のデータを1つの列に追加する場合は、「serialize」を使用します。

これは、必要に応じて、すべてをハッシュまたは配列として格納します。

ここでdocを参照してください。http://api.rubyonrails.org/classes/ActiveRecord/Base.html

+0

これは/views/player_answers/_form.html.erbコードです。 – Samir

関連する問題