0

特定のイベントを作成するために、レールで simple_form を使用しています。新しいイベントを作成するには、ユーザーとしてログインする必要があります。フォームは、ユーザーにイベント名、開始日、および終了日を入力するように求めます。ユーザーが送信ボタンをクリックすると、フォームがデータベース内の属性 user_id を自動的に更新するようにします。

現在、データベースでは、events テーブルの user_id フィールドは常に null に設定されています。ただし、この属性を次のように設定する必要があります。

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

保存する前に。

たとえば、(def createメソッド内で)@event = Event.new(params[:event]) then doを使用してイベントを作成する場合、@link.user_id = current_user.id on the next line
おそらく実行でき@link.user = current_user、railsがIDを把握します。

于 2012-11-18T18:44:15.293 に答える