单击表单上的提交后,Rails自动更新数据库属性

时间:2012-11-18 18:41:10

标签: ruby-on-rails ruby forms simple-form

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

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

events.user_id = current_user.id

以下是我的事件表以获取更多信息:enter image description here

注意:我在此数据库中手动输入了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 %>

1 个答案:

答案 0 :(得分:1)

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

events.user_id = current_user.id
保存之前

e.g。如果您使用def create创建事件(在@event = Event.new(params[:event])方法中) 然后做@link.user_id = current_user.id on the next line
你可以做@link.user = current_user并且rails将会输出id。