ruby-on-rails - TrainingSessionsController#create + Rails 5 中的 ActionController::ParameterMissing
问题描述
我正在尝试在我的索引页面上实现搜索功能。按照我在网上找到的教程https://medium.com/@zylberberg.jonathan/creating-a-search-form-in-rails-5-77fdef6be74d
我计划实施更强大的搜索,但甚至无法让它在单个字段中工作,无法克服此错误:参数丢失或值为空:training_session。为什么它会调用我的创建操作?我正在尝试调用应该对应于我认为的 training_sessions_path 的索引?
其他错误详细信息: 参数:
{"utf8"=>"✓", "authenticity_token"=>"VG+v...==", "exercise_id"=>"1", "method"=>"get"}
任何帮助表示赞赏,我一定在某个地方犯了一些根本性的错误。下面贴上相关代码
索引页:
<%= form_tag(training_sessions_path method: :get) do%>
Exercise <%= text_field_tag :exercise_id, params[:exercise_id]%>
<%= submit_tag 'Search', name: nil %>
<% end %>
TrainingSessions控制器
def index
if params[:exercise_id]
@training_sessions = TrainingSession.joins(:exercise).where('exercise_id =', "%#{params[:exercise_id]}%")
else
@training_sessions = TrainingSession.joins(:exercise).order("#{sort_column} #{sort_direction}")
end
end
private
def training_session_params
params.require(:training_session).permit(:user_id, :exercise_id, :sets, :reps, :weight, :rpe, :training_date, :projected_max, :name)
end
路线:
training_sessions GET /training_sessions(.:format) training_sessions#index
POST /training_sessions(.:format) training_sessions#create
new_training_session GET /training_sessions/new(.:format) training_sessions#new
edit_training_session GET /training_sessions/:id/edit(.:format) training_sessions#edit
training_session GET /training_sessions/:id(.:format) training_sessions#show
PATCH /training_sessions/:id(.:format) training_sessions#update
PUT /training_sessions/:id(.:format) training_sessions#update
DELETE /training_sessions/:id(.:format) training_sessions#destroy
training_sessions_calc_projected_max POST /training_sessions/calc_projected_max(.:format) training_sessions#calc_projected_max
解决方案
你错过,
了路径和方法
<%= form_tag training_sessions_path, method: :get do%>
Exercise <%= text_field_tag :exercise_id, params[:exercise_id]%>
<%= submit_tag 'Search' %>
<% end %>
推荐阅读
- apache-spark - 如何在 Kafka 集群上运行 Apache Spark 批处理作业?
- javascript - Vue将axios响应传递给不同的方法
- dom - Google Apps Script Web App 图片解决方法
- java - Android studio - 渐变背景和描边
- javascript - TypeError: Class extends value undefined is not a constructor or null - Node.js
- nuget - 用于开发和生产的最佳 Nuget.Config 方法
- python - 向后查找的正则表达式
- android - 如何处理下一个依赖于前一个的多个 okhttp 请求?
- reactjs - React Hooks - useMutation 被调用 50 多次
- python - 如何使用 DataFrame.apply() 将行内容作为字符串参数传递?