Webpage Viewリモートフォームの編集をRailsにセットアップする方法は?
上記の画像ボタンでは、「マークアイテムを完了」というボタンがあります。そのItemテーブルの中には、due_date、string:task_title、text:description、およびboolean:doneという日付があります。私は、私もやるべきこと、今
todolist_todoitems GET /todolists/:todolist_id/todoitems(.:format) todoitems#index
POST /todolists/:todolist_id/todoitems(.:format) todoitems#create
new_todolist_todoitem GET /todolists/:todolist_id/todoitems/new(.:format) todoitems#new
edit_todolist_todoitem GET /todolists/:todolist_id/todoitems/:id/edit(.:format) todoitems#edit
todolist_todoitem GET /todolists/:todolist_id/todoitems/:id(.:format) todoitems#show
PATCH /todolists/:todolist_id/todoitems/:id(.:format) todoitems#update
PUT /todolists/:todolist_id/todoitems/:id(.:format) todoitems#update
DELETE /todolists/:todolist_id/todoitems/:id(.:format) todoitems#destroy
todolists GET /todolists(.:format) todolists#index
POST /todolists(.:format) todolists#create
new_todolist GET /todolists/new(.:format) todolists#new
edit_todolist GET /todolists/:id/edit(.:format) todolists#edit
todolist GET /todolists/:id(.:format) todolists#show
PATCH /todolists/:id(.:format) todolists#update
PUT /todolists/:id(.:format) todolists#update
DELETE /todolists/:id(.:format) todolists#destroy
root GET / todolists#index
その編集リンクを呼んでいるので、それはそれを置くのに最適な場所だろう考え出したので
は今、私はtodoitems_controller.rbにformat.js
を置きますののtodoitems_controller.rbにも、またはdef update
のように? remote: true
をTodolists/_form.html.erb
ファイルに入れておくと、そこに置くのが最適なのですか、それともTodoitems/_form.html.erb
ファイルに入れるべきですか?そして、これらすべてをした後、次のステップは何ですか?
これは私がこれまで達成してきたことです。これはリモートフォームを使用して初めての作業です。私は、講義が混乱しているので、これを始めるには苦労しています。不足していることがあれば、私はこれについてさらに詳しい情報を提供しています!どんな助けもありがとう!
todolists/show.html.erb - button_to
を参照してください。私はすでにアップデートでrender.js
を置く - それは私が
<p>
<% @paginate_items.each do |item| %>
<div class="list">
<form class="oneLine">
<a class="notDue">
<%= item.due_date %>
</a>
<a class="linkResults">
<%= link_to "#{item.task_title}", [@todolist, item], style: "font-weight: bold;" %>
<%= button_to "Mark Item as Done", remote: true %><br/> <br/>
</a>
</form>
<% end %>
todoitems_controller.rbを助けが必要な部分です。
def update
respond_to do |format|
if @todoitem.update(todoitem_params)
format.html { redirect_to @todolist, notice: 'Item was successfully updated.' }
format.json { render :show, status: :ok, location: @todoitem }
render.js
else
format.html { render :edit }
format.json { render json: @todoitem.errors, status: :unprocessable_entity }
end
end
end
private
# Use callbacks to share common setup or constraints between actions.
def set_todoitem
@todoitem = Todoitem.find(params[:id])
end
def set_todolist
@todolist = Todolist.find(params[:todolist_id])
end
# Never trust parameters from the scary internet, only allow the white list through.
def todoitem_params
params.require(:todoitem).permit(:due_date, :task_title, :description, :done, :todolist_id)
end
todolists/_form.html.erb - 私はすでにあなたが提供していないremote: true
<body class="page">
<%= form_for(@todolist, remote: true) do |f| %>
<% if @todolist.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@todolist.errors.count, "error") %> prohibited this todolist from being saved:</h2>
<ul>
<% @todolist.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :list_name %><br>
<%= f.text_field :list_name %>
</div>
<br/>
<div class="field">
<%= f.label :list_due_date %><br>
<%= f.text_field :list_due_date, class: 'dateSelect' %>
</div>
<br/>
<div class="actions">
<%= f.submit %>
</div>
<br/>
<% end %>
</body>
todoitems/_form.html.erb
<body class="page">
<%= form_for([@todolist, @todoitem], remote: true) do |f| %>
<% if @todoitem.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@todoitem.errors.count, "error") %> prohibited this todoitem from being saved:</h2>
<ul>
<% @todoitem.errors.full_messages.each do |message| %>
<li><%= message %></li>
<% end %>
</ul>
</div>
<% end %>
<div class="field">
<%= f.label :due_date %><br>
<%= f.text_field :due_date, class: 'dateSelect' %>
</div>
<br/>
<div class="field">
<%= f.label :task_title %><br>
<%= f.text_field :task_title %>
</div>
<br/>
<div class="field">
<%= f.label :description %><br>
<%= f.text_area :description, size: "40x10" %>
</div>
<br/>
<% if [email protected]_record? %>
<div class="field">
<%= f.label :done, 'Task Completed' %>
<%= f.check_box :done %>
</div>
<br/>
<% end %>
<div class="actions">
<%= f.submit %>
</div>
<br/>
<% end %>
</body>
フォームはどのように提出できますか、フォームには 'action-url'がありません。フォームデータはどこに提出されるのですか? – illusionist
フォームの中の 'input'、' checkbox'のような 'form-elements'もありません – illusionist
@illusionistあなたが何を意味するのか分かりません... – ETUDESC