SOまたはGoogle検索で回答を見つけることができませんでした。リストからアイテムを編集すると、Railsの最初のエントリの値しか取得されません。
ユーザーのプロジェクトの表示ページから作成されたインデックスページに投稿の一覧が表示されています。 Urlは正しいIDを示し、入力されたデータは正常です。
しかし、特定の投稿の「編集」をクリックすると、正しいURL(ID)の編集フォームにジャンプしますが、プロジェクトに入力された最初の投稿の値が表示されます。投稿を削除すると、投稿は削除されます。最初の投稿を削除すると、編集がクリックされると、次の投稿の値が他のすべての投稿に反映されます。私はここに迷っています - 助けに感謝!
提出インデックスページ:
<div class="row wrapper">
<h2 class="color-blue"><%= @project.title %> Submissions</h2>
<% if @project.submissions.present? %>
<% @project.submissions.each do |submission| %>
<div class="submission">
<ul>
<li class="title">
<%= link_to submission.request_title, project_submission_path(@project, submission) %>
</li>
<li class="actions">
<span class="edit">
<%= link_to 'edit', edit_project_submission_path(@project, submission), class: 'color-orange' %> |
</span>
<span class="delete">
<%= link_to 'delete', project_submission_path(@project, submission), method: :delete, data: { confirm: 'Are you sure?' }, class: 'color-red' %>
</span> |
<span class="send">
<%= link_to 'send request', '#', class: 'color-atlantis' %>
</span>
</li>
</li>
</ul>
</div>
<% end %>
<% end %>
<br>
<%= link_to "Back to #{@project.title} project", @project, class: 'color-clue' %>
</div>
提出コントローラ:
class SubmissionsController < ApplicationController
before_action :authenticate_user!
before_action :set_project
before_action :set_submission, only: [:destroy, :update, :edit, :create, :show]
def index
end
def show
end
def new
@submission = @project.submissions.new
end
def edit
end
def create
@submission = @project.submissions.new(submission_params)
@submission.user = current_user
if @submission.save
redirect_to @project, notice: 'Music submission was successfully sent.'
else
render :new
end
end
def update
if @submission.update(submission_params)
redirect_to project_submissions_path(@project), notice: 'Music submission was successfully updated.'
else
render :edit
end
end
def destroy
@submission.destroy
redirect_to project_submissions_path(@project), notice: 'Music submission was successfully deleted.'
end
private
def set_project
@project = current_user.projects.find(params[:project_id])
end
def set_submission
@submission = @project.submissions.find_by(params[:submission_id])
end
def submission_params
params.require(:submission).permit(:request_title, :request_music, :notes, :terms)
end
end
迅速な対応に感謝します。最初の提案はエラーを返す 'フォームには最初の引数はnilを含めることができないか空でなければならない'と返す ' –
最初のエラーは別の問題であり、フォームにする必要があります。そして恐らく2番目のものでさえ – Ursus
私の提出書類は '<%= form_for([project、submission])do | f |で始まります。 %> ''% 'render' form '、project:@project、submission:@submission%> ' –