2
は、だから、私は、ビュー_form.erbでこれを持っている:NoMethodErrorコントローラでビューをレンダリング後
<div class="form-group">
<%= f.label :start_hour %><br>
<%= f.select :start_hour, @select_hours.map {|value| [value, value]} %>
</div>
をそしてedit.erbでこの:私のコントローラで
<%= render 'form' %>
そして、この
def edit
@user = current_user
@employee = @user.employee
@hour = @employee.working_hours.find(params[:id])
@select_hours = Array.new
for i in 0..12
@select_hours.push("#{07+i}:00")
@select_hours.push("#{07+i}:30")
end
end
私のコントローラで私の更新
def update
@employee = current_user.employee
@hour = @employee.working_hours.find(params[:id])
if @hour.update(working_hour_params)
redirect_to employee_working_hours_path(@employee)
else
render :edit
end
end
そして、ここに私の問題だ:
私は、更新をクリックして、間違ったstart_hour
を持っている(カスタム検証、編集していないを作成するときに動作します)、その@hour
は更新されません。このビューをもう一度レンダリングしますが、nil
の場合はmap
というメソッドはありません(したがっての場合)。
どうすればこの問題を解決できますか?
あなたは '@select_hours.map {| value | [value、value]} 'となりますが、select_hoursを宣言する瞬間に行うこともできます。 –
よく私はform_forで時間を選択するためにそれを使用し、私はstackoverflow ^^でこのメソッドを見つけたが、とにかくそれは完璧に働いた応答のために感謝!そして、あなたのおかげで、私はコールバックを使用して開始します:) – proofexak
ああ、私はこれを忘れて、申し訳ありません。まあ、あなたは@hourについて正しいのですが、私のコントローラーはちょっと空いていますが、全体的にはf * ckのように素晴らしいです。助けを求めてくれてありがとう! – proofexak