フォームがどのように機能するかについてはよくわかりません。
シナリオ例
ユーザーはアンケートを作成できますが、作成後に編集することはできず、質問を追加するだけであるとします。これは、調査の編集アクションを使用して実行されます。
class Survey < ActiveRecord::Base
has_many :questions
accepts_nested_attributes_for :questions
end
class Question < ActiveRecord::Base
belongs_to :survey
belongs_to :user
end
# QuestionsController
def edit
@survey = Survey.find(params[:id])
@survey.questions.build
end
def update
@survey = Survey.find(params[:id])
@survey.update_attributes(params[:survey])
redirect_to ...
end
その場合、フォームは次のようになります。
<%= form_for @survey do |f| %>
# No surveys fields on this form!
<% f.fields_for :questions do |builder| %>
<%= render "question_fields", :f => builder %>
<% end %>
<%= f.submit "Submit" %>
<% end %>
これにより、作成後に調査のフィールドを使用できなくしたい場合でも、調査の値が脆弱になったり、ハッキングされたりする可能性がありますか?
一般的にはどうですか?フォームにない場合でもモデル値を編集できますか?これの背後にある論理は何ですか、そしてどうやって彼らができなかったことを知ることができますか?
ありがとう、ただ学ぼうとしている初心者。