簡単な編集方法に固執しており、解決するまで続けることができません。レールを使った編集方法に詰まっています
インデックスビューにアイテムのリストがあり、各アイテムにはビューアイテムボタン、削除ボタン、および編集ボタンがあります。
私は作成、表示、削除に問題はありませんが、私は編集方法に固執しています。
この
は私のactivities_controller.rbdef edit
@activity = Activity.find(params[:id])
if @activity.update(activity_params)
redirect_to @activity
else
redirect_to :edit
end
end
private
def activity_params
params.require(:activity).permit(:name, :description)
end
であり、これは編集ビューである:項目のリストで
<%= form_for(@activity) do |f| %>
<p>
<%= f.text_field :name %>
<%= f.label :name, "Name" %>
</p>
<p>
<%= f.text_area :description" %>
<%= f.label :description, "Descripction" %>
</p>
<p>
<%= f.submit "save", class: "btn" %>
</p>
ビュー:
<% @activities.each do |activity| %>
<%= activity.name %>
<%= link_to "edit", edit_activity_path(activity), class: "btn"%>
<% end %>
すべてにおいて、私が従った例は、表示アイテムビューの編集ボタンを実行し、だから彼らはパスのパラメータとして@activityを使うが、私のループでは@activityを使うことができず、私はactivity
を使う。私はここで私の駄目は失敗だと思うが、私はそれを修正する方法を理解することはできません。
例えば、localhost:3000/activities/11/editに入力すると、「param is missing or value:empty」というメッセージが表示されます。
私が前に言ったように、私はそれが@activityではなくpath paramアクティビティとして渡されているので、それが強力なパラメータ "activity_params"に対して行った構造ではないと思います。しかし、この瞬間に私は解決策を見ません。
ああ、私にそれを打つ! :)私は私の答えを削除します。 – SteveTurczyn
もちろん、あなたは正しいです。ありがとうございました! – user6945851