【问题标题】:When does the controller get loaded in Ruby on Rails?控制器何时在 Ruby on Rails 中加载?
【发布时间】:2018-12-10 15:04:26
【问题描述】:

我有一个控制器和该控制器的视图。在视图中,我渲染了很多 UI 组件,例如下拉菜单、文本字段等。

用户界面中有一个date_select,它列出了某个表中的所有月份和年份。默认情况下,date_select 在其中选择当前月份和当前年份。

date_select 正下方有一个标签,应该显示在date_select 中选择的月份和年份中的工作日数。

我编写了一个 JavaScript 事件处理程序(它也调用一个控制器函数),当用户更改 date_select 中选择的值时调用它。并且事件处理程序计算工作日数(在控制器函数内基于另一个表中存在的工作日)并将其显示在date_select下方的标签中。

这个事件处理程序工作得很好。但是当第一次加载 UI 时,标签根本不会被填充。看起来我的控制器根本没有被调用!

第一次渲染 UI 时,根本不会调用控制器吗?如果是这样,Rails 会先调用控制器内部的init 方法吗?

【问题讨论】:

  • 发布一些你写的js和html代码会帮助别人帮助你。

标签: ruby-on-rails controller


【解决方案1】:

不,不会调用用于计算工作日的控制器操作。您需要将 ajax 请求发送到控制器,以使用当前月份和年份参数计算页面加载的工作日。

【讨论】:

  • UI渲染时控制器不会初始化吗?呈现页面时我应该在我的 javascript 中处理什么事件(以便我可以显式调用我的控制器以根据 date_select 默认选择计算工作日)?
  • @Biju 试试onLoadonChange 等怎么样?
  • @sawa - 我使用了ready 事件,它对我有用。感谢大家的帮助!
猜你喜欢
  • 2014-09-21
  • 2017-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-20
相关资源
最近更新 更多