Quelqu'un peut-il me dire pourquoi l'entité crée toujours avec name == nil
:Rails cant assigner des attributs pour une nouvelle entité
dans ProduitsController:
def create
@product = Product.new(name: params[:product][:name])
byebug
if @product.save
redirect_to users_path
end
end
en vue:
<%= form_for Product.new do |f| %>
<%= f.label :name %>
<%= f.text_field :name %>
<%= f.submit %>
<% end %>
modèle
:
class Product < ApplicationRecord
has_many :categories
attr_accessor :name
end
juste, merci, si les rails créent automatiquement des getters et des setters, quelle utilisation de 'attr_accessor' alors? – nikolay
@nikolay: pour créer des getters/setters qui ne sont pas supportés par des colonnes dans la base de données. –
'attr_accessor' est ce que vous utilisez dans les classes ruby simples pour créer des setters et des getters pour les attributs d'instance. Les modèles ActiveRecord sont en fait quelque peu exceptionnels car ils sont créés à partir d'une entrée externe et non du code. – max