Score %0 (0 correct0 incorrect20 unanswered)

Q1. Quando si renderizza un parziale in una vista, come passeresti le variabili locali per il rendering?

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

Q2. All'interno di un controller Rails, quale codice impedirà l'esecuzione del before_action del controller genitore :get_feature?

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

Q3. Quale affermazione descrive correttamente una differenza tra i metodi helper del form form_tag e form_for?

  • Il metodo form_tag è per i form di base, mentre il metodo form_for è per i form multipart che includono caricamenti di file.
  • Il metodo form_tag è per le richieste HTTP, mentre il metodo form_for è per le richieste AJAX.
  • Il metodo form_tag di solito si aspetta un URL come primo argomento, mentre il metodo form_for di solito si aspetta un oggetto modello.
  • Il metodo form_tag viene valutato a tempo di esecuzione, mentre il metodo form_for è precompilato e memorizzato nella cache.

Q4. Cos'è before_action (precedentemente noto come before_filter)?

  • Un trigger che viene eseguito prima di un'alterazione dello stato di un oggetto
  • Un metodo che viene eseguito prima che un modello ActiveRecord venga salvato
  • Un callback che si attiva prima che un evento venga gestito
  • Un metodo in un controller che viene eseguito prima del metodo di azione del controller

Q5. Quale modulo puoi usare per incapsulare un insieme coeso di funzionalità in un mixin?

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

Q6. In Rails, quale codice useresti per definire una route che gestisce sia i verbi HTTP PUT che PATCH?

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

Q7. Quale scelta include i verbi HTTP REST standard?

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

Q8. Quale query di ActiveRecord previene l'iniezione SQL?

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

Q9. Data questo codice, quale affermazione sulla tabella del database "documents" potrebbe essere considerata vera?

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
  • Includerebbe una colonna per :type.
  • Includerebbe colonne per :documentable_id e :documentable_type.
  • Includerebbe colonne per :documentable e :type.
  • Includerebbe una colonna per :polymorphic_type.

Q10. Gli oggetti di istanza impostati all'interno di un metodo del controller sono accessibili all'interno di una vista?

  • Sì, qualsiasi variabile di istanza impostata in un metodo di azione su un controller può essere accessibile e visualizzata in una vista.
  • Sì, le variabili di istanza impostate all'interno di un metodo di azione sono accessibili all'interno di una vista, ma solo quando la renderizzazione viene chiamata esplicitamente all'interno del metodo di azione.
  • No, le variabili di istanza in un controller sono private e non sono accessibili.
  • No, le variabili di istanza non possono mai essere impostate in un metodo di azione del controller.

Q11. Quando una convalida di un campo in un modello Rails fallisce, dove vengono memorizzati i messaggi per gli errori di convalida?

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

Q12. Se una tabella del database degli utenti contiene le seguenti righe e id è la chiave primaria, quale affermazione restituirebbe solo un oggetto il cui last_name è "Cordero"?

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

| 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. Come genereresti un menu a discesa che consente all'utente di selezionare da una raccolta di nomi di prodotti?

  • <%= select_tag(@products) %>
  • <%= collection_select(@products) %>
  • <select name="product_id"> <%= @products.each do |product| %> <option value="<%= product.id %>"/> <% end %></select>
  • `<%= collection_select(:product, :product_id, Product.all, :

id, :name) %>`

Q14. Per un validator Rails, come definiresti un messaggio di errore per l'attributo del modello address con il messaggio "Questo indirizzo non è valido"?

  • 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"

Validatore personalizzato

Q15. Dato l'aiutante URL product_path(@product), quale affermazione sarebbe prevista essere falsa?

  • Se inviato utilizzando il metodo HTTP PATCH, l'URL potrebbe essere usato per aggiornare un prodotto nel database.
  • Se inviato utilizzando il metodo HTTP POST, l'URL creerebbe un nuovo prodotto nel database.
  • Se inviato utilizzando il metodo HTTP GET, l'URL eseguirebbe l'azione di visualizzazione in ProductsController.
  • Se inviato utilizzando il metodo HTTP DELETE, l'URL chiamerebbe l'azione di distruzione per impostazione predefinita.

Q16. Dato questo codice, quale scelta sarebbe prevista essere un'affermazione vera se l'utente richiede l'azione di indice?

class DocumentsController < ApplicationController
  before_action :require_login
  def index
    @documents = Document.visible.sorted
  end
end
  • I documenti dell'utente verranno caricati.
  • L'azione di indice verrà eseguita normalmente perché :index non è elencato come argomento di before_action.
  • Il metodo require_login effettuerà automaticamente l'accesso dell'utente prima di eseguire l'azione di indice.
  • L'azione di indice non verrà eseguita se il metodo require_login chiama render o redirect_to.

Q17. In Rails, come cacheresti un modello parziale che viene renderizzato?

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

Q18. Qual è il motivo per utilizzare i Concerns in Rails?

  • I Concerns consentono modularità e riutilizzo del codice nei modelli, nei controller e in altre classi.
  • I Concerns sono utilizzati per separare i metodi di classe dai modelli.
  • I Concerns sono utilizzati per aumentare la sicurezza delle applicazioni Rails.
  • I Concerns sono utilizzati per rifattorizzare le viste Rails.

Q19. Quando si utilizza un modello ActiveRecord, quale metodo creerà l'istanza del modello in memoria e la salverà nel database?

  • build
  • new
  • create
  • save

Riferimento

Q20. Stai utilizzando un database esistente che ha una tabella chiamata coffee_orders. Come sarebbe chiamato il modello ActiveRecord per utilizzare quella tabella?

  • CoffeeOrders
  • Coffee_Orders
  • Coffee_Order
  • CoffeeOrder