vous ne pouvez pas écrire attribut inconnu `scrapbook_entry_id'
En essayant d'ajouter des données à une table de jointure de scrapbook_entries qui has_one :album et has_one :recette.
:recette :scrapbooking existent déjà. Je suis en train de les ajouter en lien avec la scrapbook_entries table.
form_for ajoutant à scrapbook_entries table:
<%= form_for(@scrapbook_entry, :url => scrapbook_entries_path(params[:id])) do |f| %>
<%= render 'shared/error_messages', object: f.object %>
<div class="field">
<%=f.select(:scrapbook_id, current_user.scrapbooks.collect {|p| [ p.name, p.id ] }, {prompt: 'Select Scrapbook...'})%>
<%= f.hidden_field :recipe_id, :value => @recipe.id %>
</div>
<%= f.submit "Save", class: "btn btn-large btn-primary" %>
<% end %>
scrapbook_entries_controller:
def create
@recipe = Recipe.find(params[:scrapbook_entry][:recipe_id])
@scrapbook = current_user.scrapbooks.find(params[:scrapbook_entry][:scrapbook_id])
@entry = @scrapbook.scrapbook_entries.build(scrapbook: @scrapbook)
if @entry.save
flash[:success] = "Added '#{@recipe.name}' to scrapbook '#{@scrapbook.name}'"
else
flash[:error] = "Could not add to scrapbook"
end
redirect_to @recipe
end
album.rb
has_many :recipes, through: :scrapbook_entries
has_many :scrapbook_entries
recette.rb
has_many :scrapbooks, through: :scrapbook_entries
scrapbook_entry.rb
has_one :recipe
has_one :scrapbook
Sur la soumission du formulaire pour le contrôleur, j'obtiens une erreur:
can't write unknown attribute `scrapbook_entry_id'
Quelqu'un peut me dire ce que je fais de mal?
Mise à jour:
schéma.rb
create_table "scrapbook_entries", force: true do |t|
t.integer "scrapbook_id"
t.integer "recipe_id"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "user_id"
end
pouvez-vous coller les paramètres que vous recevez à créer des mesures s'inscrivent dans le développement du journal
OriginalL'auteur MikeHolford | 2013-12-23
Vous devez vous connecter pour publier un commentaire.
Votre scrapbook_entr.rb doit contenir
et pas has_one!
Vous utilisez toujours belongs_to lors de votre table contient une clé étrangère dans une autre table, qui dans ce cas est certainement le cas!
flash[:error] = "Could not add to scrapbook"
au lieu de sauver l'entrée?votre
Entry
probablement l'échec de la validation.J'ai réussi à le résoudre! la ligne d'entrée doit être défini avec la construction(:recette, @recette) et pas d'un album. MERCI POUR VOTRE AIDE!
OriginalL'auteur Danny