0

我在 rails 中使用 simple_form 来创建某些事件。要创建新事件,您需要以用户身份登录。该表单将要求用户输入事件名称、开始日期和结束日期。当用户单击提交按钮时,我希望表单自动更新数据库中的属性 user_id。

现在在数据库中,事件表中的 user_id 字段始终设置为空。但是我需要将此属性设置为:

events.user_id = current_user.id

这是我的事件表以获取更多信息:在此处输入图像描述

注意:我在此数据库中手动输入了 user_id 的值。

问题:如何在用户单击提交后更新数据库属性?或者是否有默认方式在创建新事件时始终设置 user_id?

这是 new.html.erb 事件视图中的代码

<%= simple_form_for(@event) do |f| %>
  <%= f.error_notification %>

  <div class="form-inputs">
    <%= f.input :name %>
    <%= f.input :start_at %>
    <%= f.input :end_at %>
  </div>

  <div class="form-actions">
    <%= f.button :submit %>
  </div>
<% end %>
4

1 回答 1

1

在事件控制器的 create 方法中,添加您的

events.user_id = current_user.id

在保存之前。

例如,如果您使用then do创建事件(在def create方法中), 您可能可以这样做,rails 会找出 id。@event = Event.new(params[:event])@link.user_id = current_user.id on the next line
@link.user = current_user

于 2012-11-18T18:44:15.293 回答