问题标签 [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 投票
0 回答
414 浏览

ruby-on-rails-3 - 如何将路径字符串转换为控制器 + 动作 + 参数?

(我确定我已经看到了这个问题的答案,但是在挖掘了几分钟后找不到它。这应该是一个容易回答的问题......)

动机

在控制台中,您可以get使用路径参数调用该方法,例如:

这会调用ActionDispatch::Integration::RequestHelpers#get,它将“/posts/321”转换为适当的控制器、动作和参数,例如 {:controller => "posts", :action => "show", :id => "321"}。

但是你不能在控制器测试中这样做。要获得相同的效果,您需要:

这是因为get方法是由 定义的ActionController::TestCase#get,它期望动作和参数已经被解析出来。

我可以在手动填写 :controller、:action 和任何参数的地方编写测试,但这似乎是引入错误的好方法。

问题

是否有一种方法可以将字符串(例如 的调用posts_path(321))解析为适当的 :controller、:action 和参数,适合传递给ActionController::TestCase#get?

这将使编写测试更简单,更不容易出错。

[编辑:我意识到您需要 HTTP 动词 ( get) 以及路径 ( /posts/321) 来唯一地映射到:controller 和:action,但问题仍然存在……]

0 投票
2 回答
1919 浏览

asp.net-mvc - 对象引用未设置为对象错误 MVC3 的实例

我有一个 ajax 帖子,它为我提供了用户在我的表单中输入的值。

在我的数据库中,我有两个正在使用的实体,我首先使用模型。但是,尝试执行此操作时出现“对象引用未设置为对象的实例”错误:

targetCardQuestionAnswer.SelectedQuestion.Id = selectedQuestionViewModel.QuestionID;

这是我的控制器帖子:

我选择的问题视图模型:

我的数据库模型

在此处输入图像描述

0 投票
1 回答
679 浏览

ruby-on-rails - Object.attribute_changed?不在 Rails 控制器中工作

我正在覆盖设计用户的注册控制器以检查用户是否更改了城市,如果是,则在会话中再次加载 Geokit 对象。

问题是没有这样做。下面的代码没有返回任何内容。如果我删除if resource.city_changed?它,它适用于所有情况,无论资源是否已更改。

0 投票
1 回答
238 浏览

asp.net-mvc - MVC:在相同的 [HTTPOST] 操作方法中编辑和创建

我首先在我的项目中使用 MVC3-Viewmodel 模型。

当用户在 my 中输入一个值,DDL然后TextArea单击我的表单按钮时,它基本上会执行一个 ajax url.post 到我的 POST 操作,现在我的 Post Action 方法会创建并保存它。但我想要的是某种类型的检查,例如:

  • 第 1 步:如果 SelectQuestion 有任何答案
  • 第 2 步:如果答案存在,请更新
  • 第 3 步:如果答案不存在,则创建一个新答案并保存。

这就是我的控制器现在的样子:

Comment并且Grade也可以为空。

实体的关联如下

任何形式的帮助表示赞赏。

提前致谢!

0 投票
0 回答
132 浏览

ruby-on-rails - 在导轨中过滤之前

像这样在过滤器之前设置这个好主意吗

我使用它是因为 rails 缓存类,我需要重置变量以使我的脚本正常工作

我也不想在 ApplicationController 中明确调用它

这是我的代码

0 投票
2 回答
2621 浏览

ruby-on-rails - How do I set a custom ETag value in a Rails controller response?

For one controller (only), I'd like to use an ETag value generated outside of rails caching logic, and manage 304-vs-200 responses myself. It seems that nothing I do to set the ETag header works:

Rails always uses its own version.

I know I could disable caching app-wide, but I don't want that - just want to override it in the responses for one ActionController subclass.

0 投票
1 回答
1645 浏览

ruby-on-rails - 在 ActiveAdmin 中创建搜索页面

我正在使用 ActiveAdmin 来部署我的项目。我在开发时遇到了一些问题。我有一些数据库表,例如:“Worker”、“Product”、“Task”。我想创建一个页面来搜索那些有很多情况的表。

我创建了一个简单的页面:

这是_form.html.erb

但我不知道如何从表单中调用控制器?(定义了哪个控制器)以及如何将结果content从控制器呈现或显示到 Activeadmin 中的“my_page”区域?

任何人都可以帮助我吗?请!

0 投票
2 回答
2122 浏览

json - Rails 3.2 - ActiveResource - 使用带有 JSON 的 POST/PUT

我一直在看这个一段时间,目前不知所措。我已将问题缩小到与 JSON 相关,并且 JSON 似乎没有以清晰的格式发送。

我们之前使用的是 Rails 3.0.7(我要描述的问题不存在)。我们需要升级 Rails 以利用一些新功能 - 但现在出现了这个问题。在这一点上,我几乎可以肯定这是一个简单的配置或其他东西,但我需要更多的关注它。

我们正在使用 ActiveResource 对象,并且在设置对象的值并保存它(从而进行 PUT)时,我们得到从远程 Web 服务返回的 ab 403:Forbidden。这在 Web 服务层上不是问题。

在创建一个新对象并进行 POST 时,我们得到一个 409:Conflict 返回,因为它试图用默认值更新数据库——这意味着 json 数据没有到达服务——或者不清晰。

我的问题是这在 Rails 3.0.7 中有效,在 3.2.3(或我也尝试过的 3.1.3)中不再有效。我对 JSON 数据以外的建议持开放态度,但我很确定这就是问题所在。

我的 ActiveResource 模型有

我的初始化程序文件之一中有以下内容:

感谢您的任何建议!

更新

我一直在用 curl 进行测试,并通过以下方式使其工作:

我得到了它的工作,但是

  1. 似乎必须明确设置 Content-Type 标头,否则会导致 415:Media Unrecognized 错误

  2. 如果我在 ActiveResource 对象中设置 Content-Type 标头,我仍然会收到 409:Conflict 错误 - 这让我相信 JSON 仍然没有正确形成。

编辑(再次)

我已经弄清楚 JSON 的问题出在哪里——Rails 将根保留在 JSON 中。因此,而不是将资源作为

它正在发送

但是,我已设置include_root_in_json为 false - 我在初始化程序文件中以及直接在模型本身中都尝试了这个,并且没有更改。

0 投票
1 回答
1499 浏览

ruby-on-rails - Rails:提交后表单输入未保存

为什么输入此表格的任何内容都无法保存?

新的.html.erb

requests_controller.rb

我的控制器基于此
https://github.com/railscasts/154-polymorphic-association-revised/blob/master/blog-after/app/controllers/comments_controller.rb

request.rb
类请求 < ActiveRecord::Base

这是由我的调试器生成的

0 投票
1 回答
1484 浏览

ruby-on-rails - 为什么我不能在用户实例方法中使用 root_path?(未定义的局部变量或方法)

我需要为具有电子邮件参数的用户调用方法。它是在 PayPal 中支付的功能,我正在设置返回 url 和取消 url。

这是我的方法,在 user.rb 中:

我得到错误:

为什么我不能使用这种方法?为什么我不能使用 redirect_to ?