2016-03-30 5 views
0

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" %> 

Antwort

1

<%= form_for(@income, :html =>{:class => "form "}) do |f| %> 
    <%= 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 %> 
     <%= f.hidden_field :user_id, value: current_user.id%> 
    <% end %> 
    <%= submit_tag "Submit" %> 
<% end %> 
Versuchen
Verwandte Themen