0

我使用 simple_form 和 devise (RoR gems) 来制作一个新用户和编辑用户表单。我添加了一个复选框功能,以便用户可以选择他们接受的付款方式。但是,在填写和更新表单后,用户页面会生成此破折号、零和其他符号,同时还会显示选中的项目。

示例:(当我更新表格时,我检查了“借记卡”和“PayPal”。结果如下:

接受的付款方式:--- - 借记卡 - 贝宝 - ''

我知道这可能是一个愚蠢的问题,但有谁知道我怎样才能摆脱不必要的符号?我是一个完整的 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

另外,为了简要介绍一下背景:我最初尝试使用 simple_form 实现acts_as_taggable_on 并设计,以便我最终可以稍后通过 paymode(支付方式)过滤用户。但是,这并没有奏效,所以我只是将其简化为这个。之后我删除了所有与标签相关的代码。这与我得到的符号有什么关系吗?

感谢和帮助将不胜感激!

4

1 回答 1

0

不了解paymode实际什么,很难说。

到目前为止,听起来您正在直接显示一付款方式,例如,调用.to_s枚举。

您应该循环遍历它们并显式显示它们,大致如下:

这假设每个paymode都是一个关联的对象,具有类似 id 和人类可读名称的东西。这至少可以解释您看到的一些“垃圾”输出。

于 2013-05-04T19:04:49.337 回答