Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Rails创建了一系列选项中的许多关联模型_Ruby On Rails - Fatal编程技术网

Ruby on rails Rails创建了一系列选项中的许多关联模型

Ruby on rails Rails创建了一系列选项中的许多关联模型,ruby-on-rails,Ruby On Rails,我有用户可以选择的时间段选项: [ { day_of_week: 'Thursday', time_of_day: '7 am' }, { day_of_week: 'Thursday', time_of_day: '8 am' }, { day_of_week: 'Thursday', time_of_day: '9 am' }, { day_of_week: 'Friday', time_of_day: '7 am' }, { day_of_week: 'Friday',

我有用户可以选择的时间段选项:

[
  { day_of_week: 'Thursday', time_of_day: '7 am' },
  { day_of_week: 'Thursday', time_of_day: '8 am' },
  { day_of_week: 'Thursday', time_of_day: '9 am' },
  { day_of_week: 'Friday', time_of_day: '7 am' },
  { day_of_week: 'Friday', time_of_day: '8 am' },
  { day_of_week: 'Friday', time_of_day: '9 am' },
  { day_of_week: 'Friday', time_of_day: '10 am' },
  { day_of_week: 'Saturday', time_of_day: '8 am' },
  { day_of_week: 'Saturday', time_of_day: '9 am' },
  { day_of_week: 'Saturday', time_of_day: '10 am' }
]
用户
有许多
:时隙
,用户应该能够根据上面的列表选择
时隙

我当前的html:

   <%= simple_form_for(current_user, url: registration_path(:user)) do |f| %>
        <% @timeslots.each do |day, values| %>
          <div class="lead">
            <%= day %>
          </div>
          <%= f.simple_fields_for :timeslots, values.sort_by { |slot| slot[:time_of_day].to_i } do |ff, something| %>
            <div class="form-check">
              <label class="form-check-label">
                <%= ff.input_field :selected %>
                <%= ff.object.time_of_day %>
              </label>
            </div>
          <% end %>
        <% end %>
        <%= f.submit 'Update', class: 'btn btn-primary' %>
      <% end %>

我想做两件事: 1.不必为用户在数据库中预构建时隙
2.我可以更改列表(添加或删除),这将反映用户可从中选择的选项。关于1.,最好将时间段存储在数据库中,因为听起来您想向用户添加和删除时间段

然后,您可以拥有一个管理界面(根据需求2),以添加和删除用户能够选择的时隙。您不想硬编码这个。使其成为一个模型并告诉Rails所有关于模型关系的信息实际上简化了为时隙添加表单字段的问题

假设时隙是一个模型,并且模型关系在模型文件中定义,则可以对用户调用
f.association:timeslot
。Simple form自动生成可用时隙的下拉/组合框,您可以从中选择(多个)时隙

您可能需要自定义这些时隙的标签文本,我不确定Simple Form在开箱即用的情况下处理这些标签文本的效果如何


谢谢你的回答。为了提供更多信息,硬编码值是要创建的时间段的所有可能值的列表,而不是数据库中可用的值。给定这些可用值,将在数据库中为该用户创建时隙。