2017-03-13 10 views
0

"Customers"というテーブルがあります。テーブルはhereで見ることができます。 "description"は文字列で、 "fruit"は整数です。表に記入する際に、「果物」はユーザーに表示されません。代わりに、 "description"の対応する答えが "はい"の場合、ルビーは自動的に "果物"列に値 "0"を割り当てます。したがって、ユーザが「はい」を選択した場合、テーブルは果物の列に0を自動的に生成し、ユーザが「いいえ」を選択した場合、列に1を自動的に生成します。前もって感謝します!!Ruby on Railsでテーブルエントリを自動的に生成

+0

をbefore_saveフィルタを追加しますか?これにはいくつかの方法があります。そして、彼らが常にロックされている場合は、2つの列が必要ですか? – Swards

答えて

1

は、ユーザーモデルでは、あなたがこれまでに試してみました何

user.rb

class User < ActiveRecord::Base 
    before_save :assign_fruit 

    private 
    def assign_fruit 
    self.fruits = (self.description == "yes" ? 1 : 0) 
    end 
end 
+0

ありがとうございます!これは魅力的に機能しました! – Krawalla

+0

もし私が "1"を "はい"にしたければ、私はそれを逆にしたいと思っていました。私はこれを試しました: 'def assign_test self.test =(self.description ==" 1 "?" yes ":" no ") end' ここでは、1や0などを入れても、テーブルに「いいえ」が返されます。 – Krawalla

+1

try self.description == 1? "はい": "いいえ" – puneet18

1

ご不明な点がございましたら、詳細をご記入ください。

ユーザーははい/いいえを入力しますか?

更新するか作成するフォームを送信するのですか?あなたがショーのページでこれを実現しようとしている場合は、アクション

if params[:answer] 
    instance.update_attribute(fruit, true) 
end 

にこのような何かを書くことができそうであれば

あなたはjQueryの すなわちでこれを達成できる(のチェックボックスをクリックして言わせて)

$('.checkbox_selector/.select_box_selector').on('change', function() { 
    // ajax the boolean 
}); 

私はあまり一般的な答え で応答するより多くの情報が必要になりますが、とにかくこれは

を役に立てば幸い

私はフルーツを整数ではなくブール値に設定することもお勧めします。

関連する問題