Rails link_to调用错误的控制器操作

时间:2018-05-22 23:28:05

标签: ruby-on-rails ruby model-view-controller

我的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。这永远不会被执行。如果我能提供更多有用的信息,请告诉我,感谢您的帮助!

0 个答案:

没有答案