2013-05-04 72 views
0

我使用了simple_form和devise(RoR gems)來創建一個新用戶和編輯用戶窗體。我添加了複選框功能,以便用戶可以選擇他們接受的付款方式。但是,填寫並更新表單後,用戶頁面會生成此破折號,零和其他符號,同時還會顯示選中的項目。simple_form(rails)顯示額外字符( - 「0」)

例子:(當我更新的形式,我查了「借記卡」和「貝寶」 這是什麼出來:

可接受的付款方法: - - 借記卡 - 貝 - 「」

我知道這可能是一個愚蠢的問題,但沒有人知道我怎樣才能擺脫不必要的符號?我在RoR的一個完整的初學者,真的很努力理解所有的代碼。

對於我的edit.html.erb(這也是用戶訪問查看配置文件的內容頁),我用下面的代碼:

<%= simple_form_for(resource, :as => resource_name, :url => registration_path(resource_name), :html => {:method => :put, class: 'form-horizontal'}) do |f| %> 
    <%= f.error_notification %> 

<%= f.input :name %> 
Payment Methods Accepted: 
    <%= @user.paymode %> 
<div class="checkboxes"> 
<p> 
    <%= f.collection_check_boxes :paymode, [['Cash', 'Cash'] ,['Credit Card', 'Credit Card'] ,['Debit Card', 'Debit Card'] ,['PayPal', 'PayPal']], :first, :last, {:item_wrapper_class => 'checkbox_container'} %> 
    </div> 

這是然後在我的user.controller.rb文件中定義

class UsersController < ApplicationController 
     def show 
     @user = User.find(params[:id]) 
end 

此外,爲了給一個快速的背景:我最初打算實施acts_as_taggable_on與simple_form和設計,以便我最終可以通過付費模式(付款方式)過濾用戶。但是,這並沒有解決,所以我只是簡化了這一點。之後我刪除了所有與標記相關的代碼。這與我收到的符號有什麼關係?

感謝和幫助將不勝感激!

回答

0

不知道什麼paymode實際上,這很難說。

到目前爲止,您聽起來像是直接顯示支付模式的集合,例如在枚舉上調用.to_s

您應該遍歷它們,並明確顯示各代替,大致爲:

這是假定每個paymode是像一個ID和一個人類可讀的名稱相關聯的對象。這可以解釋至少一些你看到的「垃圾」輸出。