Meine Join-Tabelle wird nicht automatisch aus den beiden Tabellen, aus denen sie stammt, übernommen. Ich habe ungefähr 5 Stunden damit verbracht, es auf verschiedene Arten zu verbinden, ohne Erfolg. Jede Anleitung zu meinem Code würde sehr geschätzt werden.Rails - Join Table wird nicht automatisch geuploadet
Hier ist mein Code.
Erster Artikel:
`class Order < ActiveRecord::Base
belongs_to :orders_users
has_many :users, :through => :orders_users
validates :item, presence: true
end
def add_order(order)
end
def remove_order(order)
end
`
Zweiter Artikel:
class User < ActiveRecord::Base
belongs_to :orders_users
has_many :orders, :through => :orders_users
validates :username, presence: true, uniqueness: true
has_secure_password
end
Die Migration:
class CreateJoinTable < ActiveRecord::Migration
def change
create_join_table :users, :orders do |t|
t.index [:user_id, :order_id]
t.index [:order_id, :user_id]
end
end
end
Orders Controller:
class OrdersController < ApplicationController
def new
binding.pry
@order = Order.new
end
def create
@order = Order.new(order_params)
if @order.save
redirect_to request.referer
else
redirect_to root_path
end
end
def show
@order
end
private
def order_params
params.require(:order).permit(:item)
end
end
-Controller
Benutzer:
class UsersController < ApplicationController
def new
@user = User.new
end
def create
@user = User.new(user_params)
if @user.save
session[:current_user_id] = @user.id
redirect_to user_path(@user)
else
redirect_to new_user_path(@user)
end
end
def show
@user = User.find(params[:id])
end
def destroy
@user = User.find(params[:id])
session[:current_user_id] = nil
@user.destroy
redirect_to root_path
end
def index
@user
end
private
def user_params
params.require(:user).permit(:username, :password,:password_confirmation)
end
end
Es ist ein wenig unklar. Kannst du erklären, was du damit erreichen willst? –
Danke für Ihre Antwort. Hier ist, was ich versuche zu tun: Wenn ein Benutzer ein Element in die Datenbank einfügt, möchte ich eine Join-Tabelle, um aufzuzeichnen, welcher Benutzer welche Elemente in die Datenbank eingegeben hat. Klärt das meine Frage? – CodeYogi
Ich denke, After_Save-Filter im Auftrag Modell wird tun, was Sie verlangten. Hast du es versucht ? –