问题标签 [actioncontroller]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
27390 浏览

ruby-on-rails - 如何为 Rails ActionMailer 配置主机名?

我正在处理一个相当传统的忘记密码电子邮件 - 我想通过电子邮件向用户发送一个嵌入在链接中的密码更改令牌,他们可以单击该链接来更改密码。我通过传统的 ActionMailer 发送电子邮件。

如果我使用普通的 link_to 标签

我从电子邮件中获得了一个相对链接 - 相当无用。

如果我添加

:only_path => false,然后它错误说我需要设置default_url_options[:host]. ActionController 文档暗示您可以通过覆盖控制器中的 #default_url_options 方法来做到这一点。当然有一个配置选项可以告诉 Rails 它的主机名是什么,而无需添加我自己的配置文件、解析它等?

0 投票
4 回答
5382 浏览

ruby-on-rails - 未初始化的常量 ActionController::Dispatcher::MiddlewareStack

我安装了一些新的 gem 进行测试并遇到了未初始化的常量 ActionController::Dispatcher::MiddlewareStack 错误。我按照 gem rdocs 上的说明在 environment.rb 文件中指定了 gem 依赖项,然后运行 ​​rake gems:install 和 rake gems:unpack。

我还一次将我的 environment.rb 文件复制到另一个项目中,但没有收到错误。我想知道还有什么其他事情可能会出错。

这是错误的更长版本(我首先在运行一个简单测试时遇到了错误;当我确实需要'active_support'时,控制台中也会发生同样的事情):

这是我的 environment.rb 文件(删除了默认注释):

0 投票
3 回答
215 浏览

asp.net-mvc - 我的动作控制器代码看起来很业余

第一次发帖时间,

我一直在玩 MVC... 我有一个有多个输入字段的视图,其中一些字段在发布时可能是空白的。

帖子控制器内部的操作方法看起来像这样

我一直在使用一直在使用的 DynamicQuery 扩展,以便在我的数据库上执行动态 Linq 查询,我已经将它封装在一个 Search 对象中,该对象传递给数据访问层以供执行。

但是,我还有一个自定义的 ViewData 对象,它被传递回视图以显示输入值和查询结果。

这一切在代码中看起来有点讨厌,因为我必须同时设置搜索对象属性和 ViewDatas。

我是不是想太多了,真的应该将值传递给数据访问层并在控制器中填充 ViewData,还是我可以使用更优雅的模式或实践?

抱歉,如果这看起来很垃圾,没有分配人来反弹想法并有时间深入研究框架。

0 投票
2 回答
3944 浏览

ruby-on-rails - 使用 Ruby On Rails 的事务操作

我在控制器中有一个复杂的操作,它对数据库执行几个更新查询。

如何在没有任何结构重构的情况下使此操作像事务一样?

0 投票
1 回答
1637 浏览

ruby-on-rails - Rspec redirect_to 路由未达到预期(或解析错误?),怎么会?

看来我的 rspec 路由:controller => 'phones',:action => 'edit' 工作......它应该是 'phones/123/edit',并且根据 rspec 测试和 rake 路由是 IS。但是当我创建一个redirect_to 期望时,期望失败了。

这是 url 的路由测试:

这是失败的期望:

这是我在测试中得到的信息:

什么精神分裂症?

0 投票
2 回答
1248 浏览

ruby-on-rails - Rails default_url_options for actioncontroller 使用 .html 自动格式化所有 url/路径

我们的要求之一是我们所有的 url 都以 .html 结尾我们已经覆盖了 default_url_options 方法以将格式添加到选项中

这在大多数情况下效果很好......但它会导致以下路线出现问题:

它会导致这些路线返回:

我需要找到一种方法来对这些路线进行例外处理,这是否可能,或者是否有人知道更聪明的方法来做到这一点。

0 投票
5 回答
7854 浏览

ruby-on-rails - 一个控制器,普通用户和管理员的不同视图

在我的应用程序中,我有一个“用户”模型。每个用户可以有多个(电子邮件)地址,这些地址在模型“地址”中定义:

在 AddressController 类中,当前登录的用户在“@user”实例变量中可用。控制器阻止普通用户编辑、删除、查看等不属于他们的地址 - 但他确实允许管理用户编辑这些地址。AddressController 类可以询问 AddressModel 当前登录的用户是在执行普通操作还是超级用户操作。

这一切都很好,并且数据库更新按预期进行,但是,我真的希望根据操作模式有不同的 HTML 视图。我只能想到两种方法来实现这一点:

  1. 使 AddressController 类中的操作模式(正常/特权)已知(使用实例变量,例如@privileged)并在视图中使用“if”语句。
  2. 在地址控制器中使用类似“after_filter”的东西来呈现不同的布局。

如果可以在两个完全不同的布局中显示执行单个控制器的结果,这取决于它的操作模式,那么有什么好的方法来实现呢?

在此先感谢斯特凡

0 投票
1 回答
96 浏览

ruby-on-rails - How can I programatically determine which methods have been declared as "helper" methods by a controller in Rails?

I'm writing a plugin that adds a method to controllers and declares it as a helper method. If it were done statically (rather than through the plugin), it would look something like this:

It works just fine. I want to test that :some_helper_method is actually a helper method, though. I tried this:

Unfortunately, ActionController::Base does not have a :helper_methods class method. Anyone know where I can get the list of things a class exposes via :helper_method?

0 投票
1 回答
473 浏览

ruby-on-rails - 绕过“漂亮的网址”中的点

在我的 routes.rb 中,我有:

而且效果很好,所以像这样的 url 发送的参数如下:

但是,如果我有这样的事情,我会得到这个错误:

我怎样才能解决这个问题?

0 投票
2 回答
2071 浏览

ruby-on-rails - 在多个页面上使用相同表单的 Rails 最佳实践

我正在开发一个 Rails 2.3.1 网站。在整个网站中,我需要有一个用于在各个页面(主页、创建帖子页面、帖子列表页面、评论列表页面等)上创建帖子的表单——我只想说这个表单需要在许多页面上各种控制器)。这些页面中的每一个都显示在相应的控制器/操作中检索到的各种其他信息。例如,主页列出了最新的 10 个帖子、从数据库中提取的内容等。

因此,我已将帖子创建表单移至其自己的部分中,并将此部分包含在所有必要的页面上。请注意,部分 POST 中的表单到 /questions(路由到 PostsController::create - 这是默认的 rails 行为)。

我遇到的问题是当 Posts 表单没有正确完成时,默认情况下 PostsController::create 方法会渲染问题/new.html.erb,即使表单是从主页提交的(/home/index.erb)。 html.erb)。

我尝试在部分中更改表单以提交“submitting_controller”和“submitting_action”,并在 PostsController::create 中,当 @post.save? == false,我渲染动作 =>“../submitting_controller/submitting_action”(这有点 hacky,但可以让您从非 PostsController 渲染动作)。

这在表面上似乎工作正常。不完整的表单在提交它的视图中呈现,并带有所有正确的@post.errors 消息等。问题是页面上的所有其他数据都没有显示,因为没有调用实际的 submit_controller/submitting_action 方法,只是关联的视图。(请记住,我做了一个保留实例对象的渲染,而不是不保留具有所有错误消息和提交值的 @post 实例对象的 redirect_to。)

据我所知,我有两个选择:

1)@post.save 时我可以将@post 对象存储在会话中吗?PostsController::create, redirect_to submit_controller/submitting_action 失败,此时我将@post 对象拉出会话并使用它重新填充表单/错误消息。(据我了解,在会话中存储对象在 Rails 中是不好的做法)

2)我可以将所有用于从各种submitting_controller/submitting_action中拉取非post创建表单数据的逻辑,放到ApplicationController中,在PostsController::create中为submitting_controller/submitting_action创建一个巨大的switch语句并调用其中的方法ApplicationController 来获取每个提交页面渲染所需的所有额外数据。

关于在 Rails 中执行此操作的最佳方法的想法?