Score %0 (0 correct0 incorrect20 unanswered)

Q1. Beim Rendern eines Teils in einer Ansicht, wie würden Sie lokale Variablen zum Rendern übergeben?

  • <%= render partial: "nav", selected: "about"}%>
  • <%= render partial: "nav", local_variables: {selected: "about"} %>
  • <%= render partial: "nav", locals: {selected: "about"}

Q2. Innerhalb eines Rails-Controllers, welcher Code verhindert, dass die before_action :get_feature des übergeordneten Controllers ausgeführt wird?

  • skip_before_action :get_feature
  • skip :get_feature, except: []
  • prevent_action :get_feature
  • :redis_cache_store

Q3. Welche Aussage beschreibt einen Unterschied zwischen den Formulierungshilfsmethoden form_tag und form_for korrekt?

  • Die Methode form_tag ist für grundlegende Formulare gedacht, während die Methode form_for für mehrteilige Formulare mit Datei-Uploads gedacht ist.
  • Die Methode form_tag ist für HTTP-Anfragen gedacht, während die Methode form_for für AJAX-Anfragen gedacht ist.
  • Die Methode form_tag erwartet in der Regel eine URL als ihr erstes Argument, während die Methode form_for in der Regel ein Modellobjekt erwartet.
  • Die Methode form_tag wird zur Laufzeit ausgewertet, während die Methode form_for vorcompiliert und zwischengespeichert wird.

Q4. Was ist before_action (früher bekannt als before_filter)?

  • Ein Auslöser, der vor einer Änderung des Zustands eines Objekts ausgeführt wird
  • Eine Methode, die ausgeführt wird, bevor ein ActiveRecord-Modell gespeichert wird
  • Ein Rückruf, der vor der Bearbeitung eines Ereignisses ausgelöst wird
  • Eine Methode in einem Controller, die vor der Ausführung der Controller-Aktionsmethode ausgeführt wird

Q5. Welches Modul können Sie verwenden, um eine zusammenhängende Funktionalität in ein Mixin zu kapseln?

  • ActiveSupport::Concern
  • RailsHelper.CommonClass
  • ActiveJob::Mixin
  • ActiveSupport::Module

Q6. In Rails, welchen Code würden Sie verwenden, um eine Route zu definieren, die sowohl die PUT als auch die PATCH REST HTTP-Verben behandelt?

  • put :items, include: patch
  • put 'items', to: 'items#update'
  • match 'items', to 'items#update', via: [:put, :patch]
  • match :items, using: put && patch

Q7. Welche Auswahl enthält Standard-REST-HTTP-Verben?

  • GET, POST, PATCH, DELETE
  • REDIRECT, RENDER, SESSION, COOKIE
  • INDEX, SHOW, NEW, CREATE, EDIT, UPDATE, DESTROY
  • CREATE, READ, UPDATE, DELETE

Q8. Welche ActiveRecord-Abfrage verhindert SQL-Injection?

  • Product.where("name = #{@keyword}")
  • Product.where("name = " << @keyword}
  • Product.where("name = ?", @keyword
  • Product.where("name = " + h(@keyword)

Q9. Angenommen, dieser Code wird gegeben, welche Aussage über die Datenbanktabelle "documents" könnte wahr sein?

class Document < ActiveRecord::Base
  belongs_to :documentable, polymorphic: true
end

class Product < ActiveRecord::Base
  has_many :documents, as: :documentable
end

class Service < ActiveRecord::Base
  has_many :documents, as: :documentable
end
  • Es würde eine Spalte für :type enthalten.
  • Es würde Spalten für :documentable_id und :documentable_type enthalten.
  • Es würde Spalten für :documentable und :type enthalten.
  • Es würde eine Spalte für :polymorphic_type enthalten.

Q10. Sind Instanzvariablen, die in einer Controller-Methode festgelegt sind, innerhalb einer Ansicht zugänglich?

  • Ja, alle Instanzvariablen, die in einer Aktionsmethode auf einem Controller festgelegt sind, können in einer Ansicht abgerufen und angezeigt werden.
  • Ja, Instanzvariablen, die innerhalb einer Aktionsmethode festgelegt sind, sind in einer Ansicht zugänglich, aber nur, wenn render explizit innerhalb der Aktionsmethode aufgerufen wird.
  • Nein, Instanzvariablen in einem Controller sind privat und nicht zugänglich.
  • Nein, Instanzvariablen können niemals in einer Controller-Aktionsmethode festgelegt werden.

Q11. Wenn eine Validierung eines Feldes in einem Rails-Modell fehlschlägt, wo werden die Nachrichten für Validierungsfehler gespeichert?

  • my_model.errors[:field]
  • my_model.get_errors_for(:field)
  • my_model.field.error
  • my_model.all_errors.select(:field)

Q12. Wenn eine Datenbanktabelle von Benutzern die folgenden Zeilen enthält und id der Primärschlüssel ist, welche Aussage würde nur ein Objekt zurückgeben, dessen last_name "Cordero" ist?

-------------------------------

| id | first_name | last_name |
|----|------------|-----------|
| 1  | Alice      | Anderson  |
| 2  | Bob        | Buckner   |
| 3  | Carrie     | Cordero   |
| 4  | Devon      | Dupre     |
| 5  | Carrie     | Eastman   |

-------------------------------
  • User.where(first_name: "Carrie")
  • User.not.where(id: [1, 2, 4, 5])
  • User.find_by(first_name: "Cordero")
  • User.find(3)

Q13. Wie würden Sie ein Dropdown-Menü generieren, das es dem Benutzer ermöglicht, aus einer Sammlung von Produktnamen auszuwählen?

  • %OPTION% <%= select_tag(@products) %>

  • %OPTION% <%= collection_select(@products) %>

  • %OPTION% <select name="product_id"> <%= @products.each do |product| %> <option value="<%= product.id %>"/> <% end %></select>

  • %OPTION% <%= collection_select(:product, :product_id, Product.all, :id, :name) %>

Q14. Für einen Rails-Validator, wie würden Sie eine Fehlermeldung für das Modelattribut address mit der Nachricht "Diese Adresse ist ungültig" definieren?

  • model.errors = This address is invalid
  • errors(model, :address) << "This address is invalid"
  • display_error_for(model, :address, "This address is invalid")
  • model.errors[:address] << "This address is invalid"

Benutzerdefinierter Validator

Q15. Angesichts des URL-Helfers product_path(@product), welche Aussage würde erwartungsgemäß falsch sein?

  • Wenn er mit der PATCH-HTTP-Methode gesendet wird, könnte die URL verwendet werden, um ein Produkt in der Datenbank zu aktualisieren.
  • Wenn er mit der POST-HTTP-Methode gesendet wird, würde die URL ein neues Produkt in der Datenbank erstellen.
  • Wenn er mit der GET-HTTP-Methode gesendet wird, würde die URL die Show-Aktion in ProductsController ausführen.
  • Wenn er mit der DELETE-HTTP-Methode gesendet wird, würde die URL standardmäßig die Destroy-Aktion aufrufen.

Q16. Angesichts dieses Codes, welche Aussage würde erwartungsgemäß wahr sein, wenn der Benutzer die Index-Aktion anfordert?

class DocumentsController < ApplicationController
  before_action :require_login
  def index
    @documents = Document.visible.sorted
  end
end
  • Die Dokumente des Benutzers werden geladen.
  • Die Index-Aktion wird normal ausgeführt, weil :index nicht als Argument für before_action aufgeführt ist.
  • Die Methode require_login wird automatisch den Benutzer vor der Ausführung der Index-Aktion einloggen.
  • Die Index-Aktion wird nicht ausgeführt, wenn die Methode require_login render oder redirect_to aufruft.

Q17. In Rails, wie würden Sie ein Teil-Template zwischenspeichern, das gerendert wird?

  • render partial: 'shared/menu', cached: true
  • render_with_cache partial: 'shared/menu'
  • render partial: 'shared/menu'
  • render partial: 'shared/menu', cached_with_variables: {}

Q18. Was ist der Grund für die Verwendung von Concerns in Rails?

  • Concerns ermöglichen Modularität und Code-Wiederverwendung in Modellen, Controllern und anderen Klassen.
  • Concerns werden verwendet, um Klassenmethoden von Modellen zu trennen.
  • Concerns werden verwendet, um die Sicherheit von Rails-Anwendungen zu erhöhen.
  • Concerns werden verwendet, um Rails-Ansichten zu refaktorisieren.

Q19. Wenn Sie ein ActiveRecord-Modell verwenden, welche Methode erstellt die Modelinstanz im Speicher und speichert sie in der Datenbank?

  • build
  • new
  • create
  • save

Referenz

Q20. Sie verwenden eine vorhandene Datenbank, die eine Tabelle namens coffee_orders enthält. Wie wäre der ActiveRecord-Modellname, um diese Tabelle zu verwenden?

  • CoffeeOrders
  • Coffee_Orders
  • Coffee_Order
  • CoffeeOrder