Ich suche eine Lösung auf Stackoverflow, aber es gibt verschiedene Probleme jedes Mal, so entschied ich mich, die Frage zu stellen. Auf meiner Bewerbung habe ich Reisen, die viele Beiträge hat. Ein Benutzer kann viele Reisen mit vielen Beiträgen auf einer Reise erstellen. Aber wenn ich versuche, einen Beitrag zu erstellen, ich habe diesen Fehler:ActiveRecord Konnte nicht finden mit 'ID' =
ActiveRecord::RecordNotFound in PostsController#create
Couldn't find Travel with 'id'=
Ich verstehe nicht, warum, also, wenn mir jemand helfen könnte .. Hier meine Posts_controller.rb ist (Aktion erstellen):
def create
@travel = Travel.find(params[:id])
@post = @travel.posts.new(posts_params)
@post.user = current_user
if @post.save
flash[:success] = "Your post is published"
redirect_to user_path(current_user)
else
render 'new'
end
end
Hier ist meine Modelle:
class Post < ActiveRecord::Base
belongs_to :user
belongs_to :travel
geocoded_by :country
after_validation :geocode
end
class Travel < ApplicationRecord
has_many :posts
belongs_to :user
end
Meine Routen:
# Travel
resources :travels, :shallow => true do
# Posts
resources :posts
end
Und ein ligne für Form:
<%= form_for(@post, :html => {class: "form-horizontal", role: "form"}, :url => travel_posts_path(@travel)) do |f| %>
<div class="form-group">
<%= f.text_field :travel_id, placeholder: @travel.id %>
</div>
Warum erlauben Sie dem Benutzer, ID's zu behandeln? Das ist eine schlechte Übung. – Dbz
Ich würde vorschlagen, 'params' zu debuggen. Möglicherweise müssen Sie stattdessen etwas wie "params [: travel_id]" tun. Aber ich würde immer noch nicht zulassen, dass Benutzer IDs wählen. – Dbz
@Dbz Ich versuche nur, die Reise-ID in der Spalte: travel_id meiner Tabelle hinzuzufügen, das Feld im Formular ist nur hier, um mir zu helfen, ich werde diese Zeile entfernen, wenn es funktioniert –