私は新しい/編集文書のアクションに必要なオブジェクトをロードするサービスとRailsの4アプリを持っている、これはそれからの方法である:Rails:編集時にフォームに新しい値をロードするにはどうすればよいですか?
def template_variables
if @document.template_variables.any?
TemplateVariable.where(id: document_vars).each do |v|
next unless User.method_defined?(v.name.to_sym)
v.update_attribute(:text, @user.send(v.name.to_sym)) # problem line, persists the change when i don't want to
v.text = @user.send(v.name.to_sym) # also a problem, doesn't update the value in the form at all
end
else
TemplateVariable.where(id: master_vars)
end
end
私は(2つの問題のラインのためのソリューションを必要とします彼らは私が考えたちょうど2つの事であり、両方ともそこにいるはずではありませんが、私は私の問題のために両方を含んでいます)。
最初のアップデートとは、モデルに変更が残っています。これは望ましくない動作です。 2行目は何もしません。論理的には、フォームのの変数にあるテキストを置き換える必要があるようです。@user.send(v.name.to_sym)
です。それは何もしないようです。
この問題を解決する方法はありますか?
ボーナスポイントflash[:notice]
に表示する新しい値を持つフィールドを一覧表示する方法がある場合は、
を対応するフォームコードで更新しました。
<%= v.input :text, as: :string, input_html: { value: v.object.text } %>
値/ vsを設定しても何も変更されません。
をすることができます示すように、フラッシュ通知を表示するには、ビューの設定を持っていると仮定することを設定することで、何でもフラッシュ予告などのように表示することができますフォームコードも追加しますか? – tegon