gpt4 book ai didi

ruby-on-rails - 使用 ice_cube gem 创建重复事件

转载 作者:数据小太阳 更新时间:2023-10-29 08:08:03 28 4
gpt4 key购买 nike

我正在尝试使用 ice_cube 和 recurring_select gem 创建重复事件。

这是我的 _form.html.erb 代码:

<%= simple_form_for(@event) do |f| %>
<div class="form-inputs">
<%= f.select_recurring :day, [IceCube::Rule.daily] %>
<%= f.input :start_time %>
<%= f.input :end_time %>
</div>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>

在我的 Controller 中,我有(除其他外):

def new
@event = Event.new
end

def create
@event = Event.new(event_params)
respond_to do |format|
if @event.save
format.html { redirect_to @event, notice: 'Event was successfully created.' }
format.json { render :show, status: :created, location: @event }
else
format.html { render :new }
format.json { render json: @event.errors, status: :unprocessable_entity }
end
end
end

def event_params
params.require(:event).permit(:day, :start_time, :end_time, :reserved)
end

如您所见,我想为一周中的每一天创建相同的事件,但实际上,如果我提交此表单,我的 :day 列仍为空。

您能提供一些反馈吗?不知道哪里出了问题

最佳答案

您的escape_params 似乎是错误的,它应该是您在update 操作中使用的event_params:

private
def event_params
params.require(:event).permit(:day, :start_time, :end_time, :reserved)
end

更新:

查看 recurring_select gem 后,它发送到服务器的数据是这样的:

event[:day]: {"interval":1,"until":null,"count":null,"validations":null,"rule_type":"IceCube::DailyRule"}

所以它不是一个可以存储在单个字段中的简单的单值参数。

您在这里有两个选择,要么序列化该值并将其存储在单个字段中,要么为数据库中的每个参数创建单独的字段。

并且由于您在 day 字段中的数据是散列,permit 函数根本无法处理它。您可以在 Rails issue tracker 上查看更多信息.

关于ruby-on-rails - 使用 ice_cube gem 创建重复事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31775127/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com