我的rails link_to正在调用一个不同的控制器动作。我有一个下拉菜单,我想链接到网站的另一部分。但是,它调用帮助构建页面的控制器方法而不是实际的控制器方法。这会导致问题,因为我没有将正确的信息传递给方法调用以正确执行它。我已经准确地将这个东西用于我网站的其他部分,但不能在这里。
当setup
方法被调用时会发生确切的问题,然后又调用另一个依赖于传入的ID的方法。但是,当我有时,我不会传入ID下拉菜单中的link_to因为我不想调用设置。
以下是相关代码:
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>
weeks_controller.rb:我删除了大部分setup
代码,因为它不是很有用。我确实保持param查找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:我只有&#34;周&#34;此处列出的控制器路线,因为我不相信其他路线是相关的。
########### 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
正如您所看到的,我在draw_day控制器方法中有byebug
。这永远不会被执行。如果我能提供更多有用的信息,请告诉我,感谢您的帮助!