2014-06-25 23 views
1

我有一個javascript將數字轉換爲單詞,它使用輸入id =西班牙語。 http://jsfiddle.net/fiddleyetu/RQ7R4/74/使用update_all不能保存參數

我創建了其他的JavaScript,它將輸入值顯示爲text_field_tag,如重複值。

<script>window.onload=function(){document.getElementById('money_word').value=document.getElementById('Spanish').value;}</script> 

我試圖更新「行動展示」一欄,但沒有更新任何事情,似乎不讀書money_word PARAMS

下面是表

|invoices| 
    |id| |money| |money_word| 
    1  1000  one thousand 
    2  2000  two thousand 
    3  3000  three thousand 

這裏控制器

def show 
    @invoice= Invoice.find[params[:id]] 
    @money= params[:money_word].to_s 
    @query= Invoice.update_all(["money_word = '#{@money}' ",@money ], ["id = ?",params[:id] ]) 
end 

這裏是根據:

<input id="Spanish" NAME="Spanish" class="input_blank" value="ONE THOUSAND" 
<script>window.onload=function(){document.getElementById('money_word').value=document.getElementById('Spanish').value;}</script> 

<%= text_field_tag "money_word", @money %> 

這裏是日誌:

Processing InvoiceController#show (for 127.0.0.1 at 2014-06-25 15:39:44) [GET] 
    Parameters: {"id"=>"57"} 
    Invoice Load (0.1ms) SELECT * FROM `invoices` WHERE (`invoices`.`id` = 1) 
    Invoice Update (34.7ms) UPDATE `invoices` SET money_word = '' WHERE (id = '1') 

Rendering invoice/show 

請有人能幫我還是勸我其他的方式來保存號碼的翻譯中?

回答

1

不知道爲什麼你正在做的,在節目行動,但嘗試:

params[:invoice][:money_word] 

代替

params[:money_word] 
+0

Where ? sintaxis如何? –

+0

我試過並沒有工作 –

+0

在show action中,你需要把這個 @ money = params [:invoice] [:money_word] – zauzaj

1

由於您正在更新單個記錄,所以沒有理由使用update_all。只要叫上的update_attributes您已經加載了@invoice:

@invoice.update_attributes(money_word: @money) 
+0

我嘗試過,但我得到這個: 發票更新(45.8ms)UPDATE'invoices' SET money_word =''WHERE(id ='1') SQL(0.1ms)BEGIN SQL(0.1ms)COMMIT –

+0

似乎並沒有保存參數 –

+0

如果您想嘗試update_all,請嘗試將其更改爲:Invoice.update_all({:money_word => @money},{:id => params [:id]}) – infused