ユーザーがチェックボックスをオンにしたときにページを更新すると(バックグラウンドでシームレスに)、チェックボックスをオフにすると、そのdivまたはタスクがそれが完了したので別の場所?ページを一度に更新する(バックグラウンドで)
私はそれが移動したチェックボックスがチェックされると、そのそこそこ
def home
if current_user
@todos = current_user.todos.where(completed: false)
end
end
def complete
if current_user
@todos = current_user.todos.where(completed: !false)
end
end
のようにそれらを分離しており、これは動作します - しかし、ページは、タスクが移動されたことを確認するためにリフレッシュする必要があります。私は、タスクが、それはこの
def completed
if @todo.update_attribute(:completed, [email protected])
flash[:success] = "Congratulations, it was successful."
redirect_to dashboard_path
else
flash.now[:error] = "ERROR: Please try again."
render :new
end
end
のように見え、私の見解では、ように
<% @todos.each do |todo| %>
<div class="card hoverable">
<div class ="card-content mh-100">
<span class="card-title"><%= todo.title %></span>
<p><%= todo.item %></p>
</div>
<div class="card-action grey lighten-5">
<p style="margin: 0;">
<%= check_box_tag 'todo[completed]', todo.id, todo.completed, data: { remote: true, url: url_for(controller: :todos, action: :completed, id: todo), method: "POST" }, id: todo.id, :onclick => "Materialize.toast('Todo Completed, Grats!', 4000)" %>
<%= label_tag todo.id, "COMPLETE", :class => 'strikethrough' %>
</p>
</div>
</div>
<% end %>
ですが、どのように、私はページ、またはdivのリフレッシュできます完了マーク私のドスコントローラで
タスクがシームレスに消えるようにチェックボックスがチェックされていますか?
こんにちは、ありがとう、私はこの 'ActionView :: Template :: Error(未定義のローカル変数または#(##Class:0x007f283e1ff370>:0x007f2834b11968>のためのメソッド 'todo '): 1:$(" todo_container _ <%= todo.id%> ")remove(); アプリ/ビュー/ドス/ completed.js.erb:1: '_app_views_todos_completed_js_erb___3190582875541384523_69905408839680' で:70: アプリ/コントローラ/ todos_controller.rb'ブロック(2つのレベル)で終了に」 アプリ/コントローラ/ todos_controller.rb:69 :完了しましたが、私はそれを修正する方法がわかりませんが、これは私のレールコンソールのtodoチェックボックスをクリックすると発生します。 –
これは誤植です。 .id' - @todoインスタンス変数を参照しています。私は私の答えを更新しました –
ああ完璧、ありがとう、あまりにも良い先生! –