问题标签 [inherited-resources]
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.
ruby-on-rails-3 - 可以吗?(:更新)返回false,但不能使用inherited_resources gem 限制资源的编辑/更新
我正在使用带有继承资源的 cancan,我遇到了一个奇怪的问题(可能是错误?),我为用户定义了一个编辑权限,突然他们被授权访问 /edit 操作,尽管能力返回 false。这就是我正在经历的行为。
如果没有定义能力,我的非管理员用户会从 /venues/1/edit 重定向到主页。但是,一旦我定义了一个 :update 能力,无论该能力返回真还是假,我都不会被重定向。这是我要定义的能力:
能力.rb
这将返回正确的值,正如我在测试中看到的以及在我的视图中进行的健全性检查:
场地/edit.html.haml
所以,如果我在编辑操作中并且我的视图显示“我无法更新”,那么不应该可以从这个页面重定向我吗?作为双重检查,我尝试了
仍然没有运气......我只是觉得奇怪的是,没有任何能力定义,我被重定向,但是当我定义一个返回 false 的能力时,尽管视图层适当地告诉我我无法编辑,但我没有被重定向。有任何想法吗?这是一个错误吗?难道我做错了什么?
此外,我不仅可以看到编辑操作,而且还可以实际向资源发出 put 请求并保存资源。
ruby-on-rails - Rails:具有继承模型结构的 Rabl 模板
我正在开发一个使用某种继承结构的项目......基类是..
一个子类是...
这是一个显示继承结构的图形。
对于这些模型,我正在尝试使用RABL gem创建一个 API 。这是相关的控制器...
...
...
我按照Ryan Bates 的 Railscast #322 中的show
建议创建了一个模板。看起来像这样...
http://localhost:3000/api/v1/circles/1.json
当我通过以下错误消息请求圈子时...
模板丢失
缺少模板 api/v1/circles/show、api/v1/base/show、inherited_resources/base/show、application/show with {:locale=>[:en], :formats=>[:html], :handlers= >[:erb, :builder, :arb, :haml, :rabl]}。
我需要如何设置模板才能使用继承的资源?
部分成功
我提出以下观点。我还设法实现模型的继承结构以保持代码 DRY。
...
...
...
这将为圆圈输出所需的 JSON(index
操作):
但由于某种原因,它不会输出与所有属性相关联的信息……
注意:模型上有一个我之前没有提到的关联。shapes
Shape
ruby-on-rails-3.2 - 集成继承资源和权限
我目前正在尝试将inherited_resources 和权限集成到我的Rails 应用程序中。
对于检查基于资源执行控制器操作的能力的最佳位置,我有点卡住了。此代码作为权威示例给出:
因为在inherited_resources 中,查找器被抽象掉了,我认为最好也将authorise_action_for
检查附加到这些抽象的查找器上。
在更新(可能是创建)的情况下,请注意权威的双重检查。
ruby-on-rails - allowed_params - rails4 和inhered_resources
我尝试在 rails4 应用程序中使用 IR,但我的代码
引发 ActiveModel::ForbiddenAttributesError 异常。
以下代码同样的问题
这段代码有什么问题?
PS:我已经尝试遵循 protip http://blog.josemarluedke.com/posts/inherited-resources-with-rails-4-and-strong-parameters但对于 4.0rc1 它不起作用:(
ruby-on-rails-3.2 - 继承的资源:如何在创建或更新操作后发送电子邮件
我想知道当在inherited_resources 框架中专门创建或更新记录时发送电子邮件的最佳方式是什么。
现在我正在这样做:
这是有道理的,但似乎有点笨拙。我尝试在成功响应块中这样做,但这似乎也是一件坏事。我还尝试链接到 update_resource 和 create_resource 方法。它们都可以工作,但它们看起来都不是很优雅。
也许我正试图最大限度地减少代码!
ruby-on-rails - 向当前用户显示索引,仅显示他们的信息
我有一个模型订单。在索引中,我希望 current_user 仅查看包含他们的订单的索引。订单belongs_to :admin_user。AdminUser has_many:订单。我在我的应用程序中使用 activeadmin,如果这有影响的话。我收到此错误:
给出错误的行是我的订单控制器中的第二行。(编辑了不必要的信息)
这是@jamesw 要求的我的订单模型
ruby-on-rails-3.2 - 使用 CarrierWave、SimpleForm、InheritedResources 和多态关联进行文件上传
我无法让嵌套属性使用多态性处理文件上传。这是我的应用程序中的相关源代码。
应用程序/上传器/image_uploader.rb
应用程序/模型/photo.rb
应用程序/控制器/photos_controller.rb
应用程序/模型/listing.rb
app/views/listings/show.html.haml
上面的表格有效,但是传递 :imageable_id 和 :imageable_type 对我来说感觉很骇人,并且很容易导致批量分配安全问题。另外,这要求我在 Photo 中有 attr_accessible 以及到 :photos 的 photos_controller.rb 和 RESTful 路由。这一切似乎都非常错误。
这是我的原始形式,感觉更像是 Rails 方式,但它不起作用。似乎多态关联在某种程度上受到干扰。我认为照片属性应该与 params[:listing] 一起发布,而不是单独的 params[:photo]。
app/views/listings/_form.html.haml
有人可以展示正确的方法吗?
instance-variables - 在继承的资源中将实例变量设置为父级
我正在尝试 IR,但在将实例变量设置为嵌套父对象时遇到了一些问题。例如,我有一个有很多项目的专业模特。在我的项目控制器中,我有这个:
对于所有的操作,我想为父项目设置一个@professional 实例变量。
我尝试了一个前置过滤器,如下所示:
但我相信它在 IR 有机会设置 @project 实例变量之前被调用。
我怎样才能做到这一点?
ruby-on-rails - 继承资源 Rails 4 更新操作
我的应用程序使用 Rails 4 和inherited_resources
. 非常奇怪的是,该update
操作似乎不起作用。当尝试在edit
页面上提交表单时,我收到此错误:
表格中有 6 个字段。我的控制器是这样的:
为什么会这样?是否与 Rails 4 不兼容,我只需要自己执行update
操作?