ruby on rails - getting null value in my table? -
i creating employee pay roll application. in having 2 models 1 employee , salary. have added foreign key employee_id in salaries table , employee name in _form.html.erb(salaries) using gem 'rails3-jquery-autocomplete'. have followed steps in gem. foreign key relationship not working. getting null value in field employee_id in salaries table. '
here have attached model,view,controller,routes , everything. kindly check it.
my models
** salary.rb**
class salary < activerecord::base belongs_to :employee, :foreign_key => "employee_id" attr_accessible :basic, :da, :effective_from, :effective_to, :employeesalary, :hra, :ca, :sa, :employee_id end employee.rb
class employee < activerecord::base has_many :salaries, :foreign_key => "employee_id" attr_accessible :address, :age, :branch, :city, :date_of_birth, :designation, :employee_end_date, :employee_start_date, :gender, :name end my controllers
salaries_controller.rb
class salariescontroller < applicationcontroller autocomplete :employee, :name, :display_value => :name, :full => true def new @salary = salary.new end def create @salary = salary.new(params[:salary]) if @salary.save flash[:success] = "created new month salary!" redirect_to salaries_path else flash[:error] = "couldn't create salary" render 'new' end end def index @salary = salary.order('created_at desc').paginate(:page => params[:page], :per_page => 10) end def show @salary = salary.find(params[:id]) @employee =employee.all end end employees_controller.rb
class employeescontroller < applicationcontroller def new @employee = employee.new @salary = @employee.salaries.build end def create @employee = employee.new(params[:employee]) if @employee.save flash[:success] = "created employee successfully!" redirect_to employee_path(@employee) else flash[:error] = "couldn't create employee" render 'new' end end def index @employee = employee.order('created_at desc').paginate(:page => params[:page], :per_page => 10) end def show @employee = employee.find(params[:id]) end end routes.rb
resources :salaries :autocomplete_employee_name, :on => :collection end resources :employees _form.html.erb(salaries)
<%= form_for @salary |f| %> <%= f.hidden_field :employee_id, :id => "real_employee_id" %> <span class="help-block">enter employee name</span> <%= autocomplete_field_tag 'throwaway_employee', '', autocomplete_employee_name_salaries_path, :size => 75, :id_element => '#real_employee_id' %> application.js
//= require jquery //= require jquery_ujs //= require autocomplete-rails //= require_tree . i have checked throughly can't find error. kindly help me out of issue.
thanks in advance...
i had play code tonight , think know might happening.
when start typing in employee name green list of names pops up. if nail come in straight away form takes whatever have typed far , uses name. fails because name incomplete. have no validation on employee id form works , null employee id saved.
what need utilize downwards arrow key or mouse select 1 of names. when name alter light green , text in text box replaced total name. when submit form match found , works!
so code works, using gui incorrectly.
you should add together line salary.rb file:
validates :employee_id, presence: true that's theory. please seek out , allow know how go.
ruby-on-rails ruby-on-rails-3 autocomplete foreign-keys jquery-autocomplete
No comments:
Post a Comment