Ruby 2.6.5 Rails 5.2.0 Wir entwickeln eine App, die eine Funktion zum Suchen von Benutzerbeiträgen auf der Karte hat.
Ich wollte einige radio_buttons in form_with deaktivieren, wenn der Benutzer nicht angemeldet war. Anfangs habe ich den bedingten Ausdruck wie folgt geschrieben.
erb:index.html.erb
<%= form_with url: map_request_path, method: :get do |f| %>
<%= f.radio_button :posts, "all_user", checked: true %>Gepostet von allen Benutzern
<% if logged_in? %>
<%= f.radio_button :posts, "following", disabled: false %>Beiträge von Ihnen und den Benutzern, denen Sie folgen
<%= f.radio_button :posts, "current_user", disabled: false %>Mein Post
<% else %>
<%= f.radio_button :posts, "following", disabled: true %>Beiträge von Ihnen und den Benutzern, denen Sie folgen
<%= f.radio_button :posts, "current_user", disabled: true %>Mein Post
<% end %>
<%= f.submit 'Veröffentlichte Shops anzeigen', class: "btn btn-primary" %>
<% end %>
<div id="map_index"></div>
<script>
~
~
~
initMap();
</script>
Ich habe das deaktivierte: Teil für Bedingung mit if logged_in? Manipuliert, aber der Code war redundant. Ich wollte etwas in einer Zeile tun, also habe ich es nachgeschlagen und festgestellt, dass es durch die folgenden Schritte aktualisiert wurde.
erb:index.html.erb
<%= form_with url: map_request_path, method: :get do |f| %>
<%= f.radio_button :posts, "all_user", checked: true %>Gepostet von allen Benutzern
<%= f.radio_button :posts, "following", disabled: current_user.nil? %>Beiträge von Ihnen und den Benutzern, denen Sie folgen
<%= f.radio_button :posts, "current_user", disabled: current_user.nil? %>Mein Post
<%= f.submit 'Veröffentlichte Shops anzeigen', class: "btn btn-primary" %>
<% end %>
<div id="map_index"></div>
<script>
~
~
~
initMap();
</script>
Schreiben deaktiviert: current_user.nil? Ich konnte den booleschen Wert, ob current_user leer ist (ob ich angemeldet bin), deaktivieren :.
Wenn nicht angemeldet
Wenn angemeldet
Ich möchte dem Textfeld je nach den Bedingungen eine schreibgeschützte Option geben