【问题标题】:simple_form (rails) displays extra characters (-- "0")simple_form (rails) 显示额外字符 (-- "0")
【发布时间】:2013-05-04 17:35:23
【问题描述】:

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

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

接受的付款方式:--- - 借记卡 - 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(支付方式)过滤用户。但是,这并没有奏效,所以我只是将其简化为这个。之后我删除了所有与标签相关的代码。这与我得到的符号有什么关系吗?

感谢和帮助将不胜感激!

【问题讨论】:

    标签: ruby-on-rails checkbox simple-form acts-as-taggable-on


    【解决方案1】:

    如果不了解paymode 究竟是什么,很难说。

    到目前为止,您似乎是在直接显示支付模式的集合,例如,在枚举上调用.to_s

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-03-25
      • 1970-01-01
      • 1970-01-01
      • 2013-06-18
      • 1970-01-01
      相关资源
      最近更新 更多