Ich habe zwei Tabellen Benutzer und Einkommen. Der Benutzer hat eine ID-Spalte und Income hat einen Fremdschlüssel von user_id, der auf die id-Spalte des Benutzers verweist. Die Assoziation wurde im Modell erstellt: Der Benutzer hat has_many Einkommen und Einkommen gehört zu Benutzer. Ich möchte, dass new.html.erb im Einkommensmodell einen neuen Einkommensposten einreicht und seinen Fremdschlüssel auf die ID des aktuellen Nutzers der Sitzung setzt, ohne dass der Nutzer eine ID in das Formular schreibt (dh der Nutzer muss sich mit seinem Konto anmelden)).Generieren aktuelle Benutzer-ID der aktuellen Sitzung in das Formular in Schienen
Hier ist meine Anwendungssteuerung:
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
private
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
helper_method :current_user #make the private method to be accessible for the view
end
end
Hier mein new.html.erb für das Einkommensmodell ist:
<h1>Add New Income</h1>
<div class="field">
<%= form_tag %>
<%= label_tag :title %>
<%= text_field :title, params[:title] %>
<%= label_tag :amount %>
<%= number_field :amount, params[:amount] %>
<br>
<% if current_user %>
User ID:<%= current_user.id %>
User Name: <%= current_user.user_name %>
<% :user_id = current_user.id%>
<% end %>
<%= submit_tag "Submit" %>