[RUBY] Rails Posts und User Linkage

Einführung

Ich entwickle gerade eine Memo-App. Ich bekomme eine Liste aller meiner Notizen, aber irgendwie Ich möchte nur eine Liste der Memos des angemeldeten Benutzers auf der Memolistenseite anzeigen.

Dieses Mal werden wir davon erfahren.

Memos und Benutzer verknüpfen

Fügen Sie zunächst der Notizentabelle (Post-Type-Tabelle) eine Spalte mit dem Namen user_id hinzu, um zu bestimmen, wer die einzelnen Posts erstellt hat.

class CreateNotes < ActiveRecord::Migration[5.2]
  def change
    create_table :notes do |t|
      t.text :title
      t.integer :user_id
      t.integer :category_id
      t.text :explanation

      t.timestamps
    end
  end
end
$ rails db:migrate:reset

Speichern Sie die ID des Benutzers, der im Memo gepostet hat

Geben Sie beim Speichern des Beitrags auch die Informationen in die zuvor hinzugefügte Spalte user_id ein. Informationen zur Erstellungsmethode

notes.controller.rb


def create
    @note = current_user.notes.build(note_params)
    @note.save
    redirect_to notes_path
  end

Nur Benutzerbeiträge auf der Memolistenseite anzeigen.

 <div class='container'>
   <div class='row'>
    <h2>Memoliste</h2>
    <table class='table'>
      <thead>
        <tr>
          <th>Titel</th>
          <th>Kategorie</th>
        </tr>
      </thead>
      <tbody>

        <% @notes.each do |note| %>
        <% if user_signed_in? && current_user.id == note.user_id %>   #Hier hinzufügen
        <tr>
          <td>
            <%= link_to note_path(note) do %>
              <%= note.title %>
            <% end %>
          </td>
          <td><%= note.category.name %></td>
        </tr>
        <% end %>
        <% end %>
      </tbody>
    </table>
   </div>
 </div>

Beschrieben in jeder Anweisung (Wiederholung) der Memoliste.

<% if user_signed_in? && current_user.id == note.user_id %> 

Ist der Benutzer mit dieser Beschreibung angemeldet? Überprüfen Sie, ob die ID des angemeldeten Benutzers und die ID des Benutzers, der das Memo veröffentlicht hat, identisch sind.

Wenn wahr, wird es angezeigt! Ich denke das ist okay!

Schließlich

Ich denke, die Erklärung ist schwer zu verstehen, aber ich hoffe, dass sie hilfreich sein wird. Auch wenn es Fehler gibt, würde ich es begrüßen, wenn Sie mich unterrichten könnten.

Recommended Posts

Rails Posts und User Linkage
Schienen und Formulardaten
Schienen gültig und ungültig?
[Schienen] Implementieren Sie die Benutzersuchfunktion
Rails6 Benutzer mit 'id' = sign_out konnte nicht gefunden werden und kann sich nicht abmelden
[Schienen] erfordern Methode und Genehmigungsmethode
Rails Tutorial Records und Memorandum # 0
Schienenpfad und URL-Methoden
Schienen sind schwierig und schmerzhaft!
Schienen sind schwierig und schmerzhaft! Ⅱ
[Rails] strftime dies und das
Rails-Webserver und Anwendungsserver
Implementieren Sie die Benutzerregistrierungsfunktion und die Unternehmensregistrierungsfunktion separat in Rails devise
[Rails] Implementierung des logischen Löschens durch den Benutzer
[Schienen] Startzeit und Endzeit speichern
Aktivieren Sie jQuery und Bootstrap in Rails 6 (Rails 6).
[Rails] Implementierung der Benutzerrückzugsfunktion
[Rails] Unterschied zwischen find und find_by
[Rails] Validierungseinstellungen und japanische Lokalisierung
Namenskonventionen für Schienenmodelle und Tabellen
Rails6 OmniAuth activestorage Benutzerbild abrufen
Datenverknüpfung mit Spark und Cassandra
Entfernen Sie "Assets" und "Turbolinks" in "Rails6".
CRUD-Funktion und MVC in Rails
[Rails] Unterschiede und Verwendung von each_with_index und each.with_index
Upgrade der Ruby- und Rails-Version des Projekts
Überlegungen zu Schienen und sauberer Architektur
[Rails] Unterschied zwischen redirect_to und Rendern