首页 > 解决方案 > 在 Ruby on Rails 中 - 显示 day[Sun, Mon, Tue,...] 而不是 rails 中的布尔字段 true/false

问题描述

我正在从事必须安排活动的项目。添加事件时,用户可以在复选框上选择多天。您可以在此处查看该图。

选择事件发生的日期

为此,我创建了数据库

  def change
    add_column :schedules, :sunday, :boolean
    add_column :schedules, :monday, :boolean
    add_column :schedules, :tuesday, :boolean
    add_column :schedules, :wednesday, :boolean
    add_column :schedules, :thursday, :boolean
    add_column :schedules, :friday, :boolean
    add_column :schedules, :saturday, :boolean
  end

我选择日期的部分表单看起来像 x-special/nautilus-clipboard 副本

.field
= f.check_box :sunday
= f.label :day, "Sunday",class:"mx-2"
br
= f.check_box :monday
= f.label :day, "Monday",class:"mx-2"
br
= f.check_box :tuesday
= f.label :day, "Tuesday",class:"mx-2"
br
= f.check_box :wednesday
= f.label :day, "Wednesday",class:"mx-2"
br
= f.check_box :thursday
= f.label :day, "Thursday",class:"mx-2"
br
= f.check_box :friday
= f.label :day, "Friday",class:"mx-2"
br
= f.check_box :saturday
= f.label :day, "Saturday",class:"mx-2"

我面临的问题是我填写了表格,因此由于布尔字段,我在列出时变得真实。我想将索引页面中显示的结果更改为 sunday、moday、... x-special/nautilus-clipboard copy

将日期显示为真或假 我已将控制器上的参数传递为

 def schedule_params
    params.require(:schedule).permit(:name,:begindate,:enddate,:campaign_id,:sunday,:monday,:tuesday*,:wednesday,:thursday,:friday,:saturday)<br>
 end

提前致谢!!忽略我的发帖方式,因为我是新来的,这是我的第一篇文章

标签: ruby-on-railsruby

解决方案


我认为@Mosaaleb 的回答已经足够好了

我的版本是:

def occur_days
  days = %w[sunday monday tuesday wednesday thursday friday saturday]
  days.select { |d| attributes[d] }.join(', ')
end

schedule.sunday = true
schedule.friday = true
schedule.occur_days
# => sunday, friday

推荐阅读