Was ich erreichen möchte ist, dass jedes Mitglied mit Schulen auflisten und danach Schulen mit allen zugehörigen Mitgliedern auflisten. Schulen können viele Mitglieder haben und Mitglieder können auch viele Schulen haben. Ich habe folgendes im System eingerichtet, habe aber Probleme die Lösung dafür zu finden. Hier ist es, wie mein Code wie folgt aussieht:Problem und Fehlermeldung: Konnte Schule mit 'ID' nicht finden =
Controller:
class MembersController < ActionController::Base
before_action :set_school
def index
@members = Member.all
end
def new
@member = Member.new
end
def create
@member = Member.new(member_params)
@member.school = @school
@member.save
redirect_to members_path
end
private
def set_school
@school = School.find(params[:school])
end
def member_params
params.require(:member).permit(:name, :email,:school)
end
end
Das ist mein Weg ist:
Rails.application.routes.draw do
get 'schools/index'
resources :members
resources :school
end
Meine Ansicht wie folgt aussieht:
<% @members.each do |member| %>
<%= member.name %>
<%= member.email %>
<%= member.school %>
<% end %>
Modell für Mitglieder:
class CreateMembers < ActiveRecord::Migration[5.0]
def change
create_table :members do |t|
t.string :name
t.string :email
t.timestamps
end
end
mein Schulmodell:
class CreateSchools < ActiveRecord::Migration[5.0]
def change
create_table :schools do |t|
t.string :name
t.timestamps
end
und die Referenz:
class AddSchoolRefToMembers < ActiveRecord::Migration[5.0]
def change
add_reference :members, :school, foreign_key: true
end
Jede Hilfe wäre toll! Vielen Dank!
Wie sollte die URL für Ihre neue Aktion aussehen? ist es 'example.com/members/new? school = someid' oder nur' example.com/members/new'? – niceman
example.com/members/new – gerazoli
@ashvin 'resources: members 'erlaubt Abfrage paramaters :) – niceman