Rails:response_with自定义对象

梦游者

从根本上来说,response_with旨在与ActiveModel的实例一起使用我尝试将其与OpenStruct的实例一起使用,但会引发错误。是否可以对自定义对象使用response_with?

class CryptController < ApplicationController
  respond_to :json

  def my_action
    respond_with OpenStruct.new(foo: 'foo', bar: 'bar')
  end
  # ...
end

引发:**未定义的方法persisted?' for nil:NilClass** ruby-2.1.4@rails4/gems/actionpack-4.2.5.1/lib/action_dispatch/routing/polymorphic_routes.rb:298:inhandle_list'/home/workstat/.rvm/gems/ruby-2.1.4@rails4/gems/actionpack-4.2.5.1/lib/action_dispatch/routing/polymorphic_routes.rb : 206:in polymorphic_method' /home/workstat/.rvm/gems/ruby-2.1.4@rails4/gems/actionpack-4.2.5.1/lib/action_dispatch/routing/polymorphic_routes.rb:114:inpolymorphic_url'

丹·克鲁斯

respond_with 是将资源公开给mime请求的帮助程序方法。

文档中

 respond_with(@user)

对于该create操作,等效于(假设respond_to :xml在示例中):

respond_to do |format|
    if @user.save
      format.html { redirect_to(@user) }
      format.xml { render xml: @user, status: :created, location: @user }
    else
      format.html { render action: "new" }
      format.xml { render xml: @user.errors, status: :unprocessable_entity }
    end
  end
end

精确的等效值取决于控制器的动作。

关键要点是,respond_with将@instance变量作为参数,并首先尝试重定向到相应的html视图。如果失败,在上述情况下,它将呈现xml响应。

您传入的是与模型实例不对应的ostruct。在这种情况下,您respond_with不知道在视图中重定向到的位置,也没有实例来呈现mime响应。

请参见RailsCastJoséValim的博客

注意:该错误undefined method persisted?是由Devise产生的,可能是因为找不到路线。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Ruby on Rails 4中为response_to和response_with设置自定义格式

来自分类Dev

更新对象时,response_with的Rails 3.2.16 JSON API行为

来自分类Dev

更新对象时,response_with的Rails 3.2.16 JSON API行为

来自分类Dev

ruby-on-rails-链接对象上的自定义动作

来自分类Dev

在Ruby on Rails中自定义表示对象ID的格式

来自分类Dev

未定义的局部变量或带有response_with的方法(Ruby on Rails)

来自分类Dev

response_with返回未知格式-rails

来自分类Dev

Rails 4 response_with包括与WHERE的关联

来自分类Dev

UserDefaults 自定义对象的自定义对象

来自分类Dev

自定义对象的向量

来自分类Dev

自定义对象工厂

来自分类Dev

枚举自定义对象?

来自分类Dev

自定义对象工厂

来自分类Dev

自定义GUI对象

来自分类Dev

NSMutableDictionary的自定义对象

来自分类Dev

自定义未来对象

来自分类Dev

Rails:自定义网址

来自分类Dev

Rails自定义验证

来自分类Dev

定义自定义Powershell对象

来自分类Dev

在Powershell中定义自定义对象

来自分类Dev

TS:自定义对象数组的定义

来自分类Dev

Rails用户定义的自定义列

来自分类Dev

用自定义方法扩展ExpressJS / Response对象的正确方法是哪种?

来自分类Dev

rails中的response_to和response_with如何工作?

来自分类Dev

在AngularJS中创建自定义对象

来自分类Dev

NSSet中重复的自定义对象

来自分类Dev

NSKeyedArchiver自定义对象数组

来自分类Dev

自定义Salesforce对象或字段

来自分类Dev

java模拟自定义对象