2016-03-30 17 views
0

İki tablom var Kullanıcılar ve Gelirler. Kullanıcının bir kimlik sütunu vardır ve Gelirin, kullanıcının kimlik sütununa başvuran user_id adlı yabancı bir anahtarı vardır. Dernek, modelde oluşturulmuştur: Kullanıcı, has_many gelirleri ve kullanıcıya aittir. Gelir modelindeki new.html.erb'nin yeni bir gelir kalemi sunmasını ve kullanıcının yabancı kullanıcı anahtarını, kullanıcının kimliğini formda girmeden oturumu geçerli kullanıcının kimliğine getirmesini istiyorum (bu, kullanıcının hesabında oturum açması gerektiği anlamına gelir)).Geçerli oturumun kullanıcı kimliğini forma getirin

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

cevap

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 %> 
deneyin: İşte
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 

gelir modeli için benim new.html.erb: İşte

başvurum denetleyicisi olan