Ich habe derzeit ein Problem, bei dem ich versuche, die Fähigkeit einzustellen, dass nur der Benutzer, der eine Gruppe erstellt hat, eine Gruppe bearbeiten oder löschen kann. Ich erhalte die folgende Fehlermeldung: nicht definierte Methode `Benutzer für #Problem mit dem aktuellen Benutzer Bearbeiten/Löschen in Schienen 4
Ich habe den folgenden Code in meiner Gruppe Index Controller:
<% @nearby_groups.each do |group| %>
<h1><%= group.topic %></h1>
<p><%= group.description %></p>
<% if current_user.id == group.user.id %>
<%= link_to "Edit", edit_group_path(group), class: "ui black button" %>
<%= link_to "Delete", group_path(group), method: :delete, data: { confirm: "Are you Sure?"},
class: "ui inverted red button " %>
<% end %>
<%= link_to "show", group_path(group), class: "ui inverted blue button" %>
<% end %>
Auf meiner Gruppe zeigen Seite Ich habe den folgenden Code:
<h1>The <%= @group.topic %> Group!</h1>
<p>Description: <em><%= @group.description %></em></p>
<p>Group Address: <em><%= @group.address %></em></p>
<p>Group City: <em><%= @group.city %></em></p>
<p>Group State: <em><%= @group.state %></em></p>
<% if current_user.id == @group.user.id %>
<%= link_to "Edit", edit_group_path(), class: "ui black button" %>
<%= link_to "Delete", group_path(), method: :delete, data: { confirm: "Are you Sure?"},
class: "ui inverted red button " %>
<% end %>
sieht Meine Gruppen-Controller wie folgt aus:
def index
@groups = Group.includes(:comments)
end
def show
@group = Group.find(params[:id])
end
Schließlich loo meine Gruppen Modell ks wie folgt aus:
class Group < ActiveRecord::Base
has_many :collections
has_many :comments
has_many :users, :through => :collections
validates :topic, presence: true
validates :description, presence: true, length: { minimum: 10 }
validates :address, presence: true
validates :city, presence: true
validates :address, presence: true
geocoded_by :address
after_validation :geocode
end
Wieder auf meine beiden Index und zeigen Seiten für Gruppe bekomme ich folgende Fehlermeldung: nicht definierte Methode `Benutzer für # Sie für jede Hilfe danken.
Dies funktionierte teilweise - die Fehlermeldungen verschwanden, aber sogar mit dem Benutzer, der eine Gruppe erstellt hat, können sie sie nicht bearbeiten. Irgendwelche Lösungen? –
Ich brauche mehr Informationen, um zu beurteilen, was das Problem ist. Ich habe das Gefühl, dass es ein Assoziationsproblem mit 'has_many_through' ist. Gehe in die 'rails console' von der Kommandozeile aus und 1)' @group = Group.find (your_group_id_that_has_); @ group.user # => sollte ein Benutzerrecht zurückgeben? '. Dann sollte 2) '@group.users # => alle zugehörigen Benutzer zurückgeben? 'LMK, wenn 1 und 2 funktioniert - ich könnte eine Lösung für Sie haben. – SoAwesomeMan
okay, eintippen in group = Group.find (1) Ich bekomme die Gruppen-ID zurück von 1. Wenn ich jedoch in group.user 1 tippe ich bekomme die Schienen-Konsole Fehlermeldung. Hilft das? Lassen Sie mich wissen, welche anderen Informationen Sie benötigen! –