当用户点击复选标记时,系统会提示他输入完成挑战的日期。
<%= link_to completed_path({ lifetime_id: lifetime.id }), data: { modal: true }, class: "btn" do %>
<span class="glyphicon glyphicon-check"></span> #Checkmark
<% end %>
既然用户完成了他的挑战,他应该通过 _completed.html.erb 将 :deadline
更新为他完成他的lifetime
的任何日期挑战。
<%= simple_form_for(@lifetime, url: lifetime_path({ lifetime_id: @lifetime }), remote: request.xhr?, html: { data: { modal: true } }) do |f| %>
<%= f.text_field :deadline %>
<div class="modal-footer">
<%= button_tag(type: 'submit', class: "btn") do %>
Save
<% end %>
</div>
<% end %>
路线
get '/completed/:id', to: 'lifetimes#completed', as: 'completed'
lifetimes_controller
def completed
@lifetime = current_user.lifetimes.find(params[:lifetime_id])
respond_modal_with @lifetime
end
我需要修复什么才能消除此错误。我正在使用我在别处找到的代码并尝试根据我的目的进行调整,所以我并不完全理解它是如何应用的。
感谢您的帮助。
最佳答案
完成的路线需要 :id
参数,而您正在传递 :lifetime_id
。
要消除您正在使用 :lifetime_id
而不是 :id
在“已完成”路由中的错误,如下所示:
get '/completed/:lifetime_id', to: 'lifetimes#completed', as: 'completed'
关于ruby-on-rails - 没有路由匹配 { :action= >"completed", :controller= >"lifetimes", :lifetime_id=>14} 缺少必需的键:[:id],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34246359/