2017-09-02 62 views
0

之前單擊我是新來的Rails,我試圖創建提交值到數據庫取決於圖像點擊的形式。Rails的驗證,如果將圖像發送形式

我有五個圖像和一個提交按鈕。我正在考慮將五個圖像轉換爲按鈕類,以便每當它被點擊時,它將在文章控制器中運行一個動作並傳遞值。

例如,如果單擊第一個圖像,它會運行的操作@ article.title =「第一形象點擊」,並提交按鈕將運行@ article.save的創建行動。

我想:

<%= button_to "Submit Score", { :controller => "articles", :action => "submitScore"} %> 

但由於某些原因,當我按下圖像嘗試運行在第二十控制器創建行動,並試圖將其保存爲好。我知道,因爲我有一些數據驗證,並限制@ article.title不能爲空,當我按圖像按鈕它說標題不能爲空。

這樣做的最好方法是什麼?

回答

1

button_to生成一個整個form標籤。嘗試使用button標籤有包含在表單標記輔助中值屬性:

<%= form_for @article, articles_path do |f| %> 
    <%= f.text_field :title %> <!-- or hidden field? --> 

    <button type="submit" name="article[score]" value="1"> 
    <%= image_tag 'foobar.gif' %> 
    </button> 
<% end %> 

,而不是button_to幫手。

+0

嗨,感謝您的回覆。然而,我想要某種切換功能,而不是按鈕直接發送到數據庫(即用戶可以選擇和按下不同的按鈕之間,然後一旦他們決定,他們可以按提交按鈕並提交相應的分數。大量的研究,但似乎沒有一個簡單的答案 –

+0

幾個單選按鈕可能是你在找什麼:''雖然你需要一些CSS魔法隱藏採摘。 –

+0

非常感謝!我用你的建議結合的方法與一些jQuery和CSS。完美的作品。 –

1

覆蓋每個圖像上的複選框。使複選框的標籤包含圖像,以便在單擊圖像時選中複選框。 (如果您希望用戶只選擇一個圖像,請使用單選按鈕)

然後,當表單提交給控制器時,控制器可以檢查params以查看選擇了哪些圖像並執行所需操作做。

+0

嗨,我打算也使用單選按鈕。但有沒有辦法改變單選按鈕的外觀。我知道我可以使用圖像標籤標記單選按鈕旁邊的圖像,但有沒有辦法將單選按鈕切換到實際圖像,以便只需單擊圖像。如果你明白我的意思。 –

+0

是的,您可以隱藏單選按鈕,然後,例如,使用js在所選圖像周圍應用css邊框。 –