2017-03-13 65 views
0

我有一張名爲「Customers」的表。該表可以看到here。 「description」是字符串,而「fruit」是整數。填寫表格時,「水果」不會顯示給用戶。相反,如果對「description」的相應答案是「yes」,我希望ruby自動將值「0」分配給「fruit」列。因此,如果用戶選擇是,表格將自動在水果列中生成一個0,如果用戶選擇否,它將在列中自動生成1 ...任何想法?先謝謝你!!在Ruby on Rails中自動生成表條目

+0

你嘗試過這麼遠嗎?有幾種方法可以解決這個問題。而且,如果他們總是被鎖定,你需要兩列嗎? – Swards

回答

1

添加before_save過濾器在用戶模型

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或其他任何值,它都會在表中返回」no「...您能幫忙嗎? – Krawalla

+1

嘗試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 
}); 

我需要更多的信息來一個不太通用的答案 迴應無論如何希望這有助於

我也建議設置水果作爲布爾值而不是整數。