2016-08-22 2 views
0

У меня есть две модели: one customer.rb, а вторая - money.rb. Отношения - это клиент has_many: деньги, а деньги принадлежат клиенту. Я использую удаленную базу данных MySql. Когда я пытаюсь извлечь данные из одной таблицы в то время он просто работает нормально, но проблема в том, когда я пытаюсь сделать это:Ruby on Rails ActiveRecord :: StatementInvalid in Customers # show

<%= @customer.money.each do |m| %> 
    <%= m.id %> 
    <%= m.cid %> 
<% end %> 

Он выдает ошибку: Mysql :: Error: Unknown колонка «money_tb. customer_id 'in' where clause ': SELECT money_tb. * FROM money_tb WHERE money_tb. customer_id =? Вот отрывок из моего show.html.erb:

<h1><%= @customer.name %></h1> 
<%= @customer.money.each do |m| %> 
    <%= @m.id %> 
    <%= @m.cid %> 
    <%= @m.customer.name %> 
<% end %> 

Вот мой customers_controller:

class CustomersController < ApplicationController 
    def index 
     @customers = Customer.all 
    end 

    def new 
     @customer = Customer.new 


    end 
    def create 
     @customer = Customer.new(customer_params) 
     if @customer.save 
      flash[:notice] = "Customer Create" 
      redirect_to new_customer_path 
     else 
      render 'new' 
     end 

    end 

    def edit 
     @customer = Customer.find(params[:id]) 

    end 
    def update 
     @customer = Customer.find(params[:id]) 
     if @customer.update(customer_params) 
      flash[:notice] = "Customer Updated" 
      redirect_to customers_path 
     else 
      render 'edit' 
     end 
    end 
    def show 
     @customer = Customer.find(params[:id]) 
    end 
    private 
    def customer_params 
     params.require(:customer).permit(:name, :address, :ph_no) 
    end 



end 

И это модель:

class Customer < ActiveRecord::Base 
    self.table_name = "cust_tb" 
    has_many :money 
    has_many :gold 

end 

Также я хочу отметить, что поле customer_id в денежной таблице представлено как «cid»

ответ

0

Если у вас разные f oreign_key, чем «association_name_id», тогда вам необходимо передать :foreign_key как belongs_to, так и has_many.

class Customer < ActiveRecord::Base 
    has_many :money, foreign_key: "cid" 
end 

class Money < ActiveRecord::Base 
    belongs_to :customer, foreign_key: "cid" 
end 
+0

Thanks Alot #Michal_Mlozinak. это сработало. Спасибо ... –

Смежные вопросы