Wenn ich dieses Formular absende, wird ein neuer Datensatz erstellt, aber die Werte werden nicht hinzugefügt. Versucht ein paar andere Dinge, aber nichts funktioniertform_for erstellt einen neuen Datensatz, aber die Werte sind leer
Kommentare Controller
def report
@report_comment = ReportComment.new
if @report_comment.save(report_comment_params)
redirect_to root_path
else
render 'static_pages/home'
end
end
private
def report_comment_params
params.require(:report_comment).permit(:guide_id, :submitted_by, :comment_id)
Ende
Kommentare Ansicht (nur die Berichtsformular)
<% @report_comment = ReportComment.new %>
<% @guide = Guide.friendly.find(params[:guide_id]) %>
<% if current_user.nil? %>
<% user_id = 0 %>
<% else %>
<% user_id = current_user.id %>
<% end %>
<%= form_for([@report_comment], url: comments_report_path, method: :post) do |f| %>
<%= f.hidden_field :guide_id, value: @guide.id %>
<%= f.hidden_field :submitted_by, value: user_id %>
<%= f.hidden_field :comment_id, value: comment.id %>
<%= f.submit "Report" %>
<% end %>
log mit den übergebenen params
Parameters: {"utf8"=>"✓", "authenticity_token"=>"0XMjwzMlMLSwqpImXpjTRWd8yHUP/ERTkvnzd9rWIkSA94l9f9bCQdODXrC3SyvmfJjuW/N3zkp5pVZAf+0D+w==", "report_comment"=>{"guide_id"=>"1", "user_id"=>"1", "comment_id"=>"1"}, "commit"=>"Report"}
Nicht sicher, warum die Werte nicht gespeichert werden. Ich kann alternativ hinzufügen @report_comment.update(guide_id: params[:report_comment][:guide_id], submitted_by: params[:report_comment][:submitted_by], comment_id: params[:report_comment][:comment_id])
unter if @report_comment.save(report_comment_params)
aber das ist nicht ideal und nicht so gut wie nur sie direkt aus dem Formular speichern speichern.
'@report_comment = ReportComment.new (report_comment_params)' lösen wird. –