Ich bin neu in Rails, ich mache Tutorial von Hartl, aber ich möchte manchmal etwas Besonderes von mir zum Code hinzufügen. Ich mache gerade Mikro-Dateien und ich möchte die Funktion "Löschen" hinzufügen, um Mikro-Dateien zu löschen, aber ich möchte, dass diese Funktion nur für den Administrator sichtbar ist und für Benutzer, die diese Mikro-Datei erstellt haben. Jetzt weiß ich nicht, wie man das macht, denn wenn ich <% if current_user(micropost.user) && user.admin %>
einrichten will bekomme ich einen Fehler wrong number of arguments (given 1, expected 0)
. In session_helper.rb
habe ich Funktion def current_user
nicht def current_user(micropost.user)
Ich weiß, aber kann ich irgendwie diese micropost.user hinzufügen und das getan? Bellow gesamten Code:Wie kann ich 1 Argumente zu 1 Funktion hinzufügen?
app/views/microposts/_micropost.html.erb
<li id="micropost-<%= micropost.id %>">
<%= link_to gravatar_for(micropost.user, size: 50), micropost.user %>
<span class="user"><%= link_to micropost.user.name, micropost.user %></span>
<span class="content"><%= micropost.content %></span>
<span class="timestamp">
Posted <%= time_ago_in_words(micropost.created_at) %> ago.
</span>
<% if current_user(micropost.user) && user.admin %>
<%= link_to "delete", micropost, method: :delete,
data: { confirm: "You sure?" } %>
<% end %>
</li>
app/helpers/session_helper.html.erb
def current_user
if (user_id = session[:user_id])
@current_user ||= User.find_by(id: user_id)
elsif (user_id = cookies.signed[:user_id])
user = User.find_by(id: user_id)
if user && user.authenticated?(:remember, cookies[:remember_token])
log_in user
@current_user = user
end
end
end
Verdammt einfach Ich habe nicht darüber nachgedacht. Vielen Dank! – hydroxyzinum
BTW, hast du irgendwelche Vorschläge, wie kann ich auch die Funktion für den Administrator definieren? Wenn ich auf den Löschen-Button als Admin klicke, werde ich zu root_url weitergeleitet, ohne den Post zu löschen ... – hydroxyzinum