2017-07-05 56 views
0

我將單選按鈕添加到我的頁面。 我希望用戶能夠選擇是否發送訂單或他們接受訂單。將單選按鈕的值保存到數據庫。導軌應用程序

我有麻煩將值保存到數據庫。

有人能告訴我嗎?

<div class="col-md-5 pick-up-buttons" id="country_div"> 

    <li><%= f.radio_button :pick_up, true %></li> 
    <li><%= f.label :pick_up, "Pick up order in store", :value => "false" %></li> 


    <li><%= f.radio_button :pick_up, false, :checked => true %></li> 
    <li><%= f.label :pick_up, "have the order delivered", :value => "true" %></li> 

    </div>  

這裏是schema_file

create_table "orders", force: :cascade do |t| 
    t.string "name" 
    t.string "email" 
    t.text  "address" 
    t.string "city" 
    t.string "country" 
    t.datetime "created_at",     null: false 
    t.datetime "updated_at",     null: false 
    t.boolean "shipped", default: false 
    t.string "pick_up" 

    end 
+0

這應該是布爾類型 –

+0

好的......有沒有辦法改變它? – Slowboy

+0

你需要運行另一個遷移並更新字段 –

回答

1

只要運行:

rails generate migration changeStringToBooleanOfPickup 

然後修改生成的遷移文件:

change_column :orders, :pick_up, 'boolean USING CAST(pick_up AS boolean)' 

然後執行 耙分貝:遷移

+0

當我做'rake db:migrate'時,我得到這個錯誤消息'PG :: DatatypeMismatch:ERROR:列「pick_up」不能自動轉換爲布爾類型 提示:您可能需要指定「USING pick_up :: boolean」。 :ALTER TABLE 「訂單」 ALTER COLUMN 「pick_up」 TYPE布爾 ' – Slowboy

+0

通過執行=固定它'DEF改變 \t change_column:訂單,:pick_up, '布爾利用鑄塑(pick_up AS布爾值)' end' – Slowboy

+0

更新回答是,你可以通過使用它來做到這一點,它現在工作嗎? –

1

pickup數據類型的列應爲布爾值以保存真/假值。

<%= f.radio_button :pick_up, "1", checked: @order.pick_up?, data: { question: 'Pick up order in store' } %> <%= f.label :pick_up, "Yes" %> 
<%= f.radio_button :pick_up, "0", checked: @order.pick_up?, data: { question: 'have the order delivered?' } %> <%= f.label :pick_up, "No" %> 
+0

thak你爲那,但是,我會怎麼把這個''有命令交付?''默認檢查? – Slowboy

+0

@Slowboy make''已經下單了?''value「1」 – puneet18

+0

這可能聽起來很愚蠢,但是應該在代碼中插入「value」1「嗎?我試圖插入,但總是出現錯誤 – Slowboy

相關問題