ruby-on-rails - Rails link_to 调用不正确的控制器动作
问题描述
我的 rails link_to 调用了不同的控制器操作。我有一个下拉菜单,我想将它链接到网站的另一部分。但是,它调用了帮助构建页面的控制器方法,而不是实际的控制器方法。这会导致问题,因为我没有将正确的信息传递给方法调用以正确执行该方法。我已经让这个确切的东西在我网站的其他部分工作,但不能在这里。
确切的问题发生在setup
调用该方法时,然后该方法又调用另一个依赖于传入的 ID 的方法。但是,当我在下拉菜单中有 link_to 时,我没有传入 ID,因为我没有不想调用设置。
以下是相关代码:
setup.html.erb :
<div class="dropdown-menu aria-labelledby="dropdownMenuButton"" >
<% @days.each do |d|%>
<%= link_to "Go to #{d}", weeks_draw_day_path(:test => d), :class=>'dropdown-item' %>
<% end %>
</div>
week_controller.rb:我删除了大部分setup
代码,因为它没有用。我确实保留了带有 id 的参数查找以及对崩溃的辅助方法的后续调用,因为我从未在上面的视图中的 link_to 上传递该 id。
class WeeksController < ApplicationController
before_action :set_week, only: [:show, :edit, :update, :destroy]
def schedule
week, start, finish = get_set_of_weeks()
for i in 0...week.length
Week.check_insert_week(week[i], start[i], finish[i])
end
end
def setup
# Gets the id of the current week
@w = Week.find_by_id(params[:id])
# Gets a DB friendly start of week
end
def draw_day
byebug
logger.info "Sup"
end
def week_lookup_controller(id)
Week.week_lookup_model_lit(id)
end
helper_method :week_lookup_controller
private
# Never trust parameters from the scary internet, only allow the white list through.
def week_params
params.fetch(:week, {})
end
end
routes.rb :我这里只列出了“周”控制器路由,因为我不认为其他路由是相关的。
########### Week actions #############
get 'weeks/schedule'
get '/weeks/:id', to: 'weeks#setup', as: 'weeks_setup'
get 'weeks/draw_day'
resources :weeks, only: [:schedule, ] do
get :schedule, on: :collection
end
如您所见,我byebug
在 draw_day 控制器方法中有。这永远不会被执行。如果我能提供更多有用的信息,请告诉我,谢谢您的帮助!
解决方案
推荐阅读
- scala - tools.nsc.io.File 的替代品是什么?
- python - Tkinter 小部件的最大数量
- postgresql - 在特定容器启动并运行后启动容器
- android - v.92 over HD Voice(通过 VoLTE)
- sql - SQL Server:检查日期的有效性
- excel - 如何查看数组中的项目
- javascript - Node.js、Express.js、输入意外结束
- python - 在特定公差内使用 pandas groupby
- python - 使用python以圆形方式裁剪图像
- r - 更改工作目录以使用 RStudio 中 Markdown 文档中的 ImageMagick 命令