Ruby on rails Rails继承的资源使用

Ruby on rails Rails继承的资源使用,ruby-on-rails,web-services,ruby-on-rails-3,Ruby On Rails,Web Services,Ruby On Rails 3,我正在使用Rails 2.3 web服务应用程序。 这是一个很棒的库,是Rails 3的一部分 我试图找出输出结果的最佳实践 class Api::ItemsController < InheritedResources::Base respond_to :xml, :json def create @error = nil @error = not_authorized if !@user @error = not_enough_data("item")

我正在使用Rails 2.3 web服务应用程序。 这是一个很棒的库,是Rails 3的一部分

我试图找出输出结果的最佳实践

class Api::ItemsController < InheritedResources::Base
  respond_to :xml, :json
  def create
    @error = nil 
    @error = not_authorized if !@user
    @error = not_enough_data("item") if params[:item].nil? 

    @item = Item.new(params[:item])
    @item.user_id = @user.id
    if !@item.save
      @error = validation_error(@item.errors)
    end 
    if !@error.nil?
      respond_with(@error)
    else 
      respond_with(@swarm)
    end 
  end

end

提前谢谢

在我们开始之前,先做几件事:

首先。我是鲁比。你知道有一个除非的命令。你可以停止做,如果! 另外,你不必做if!*的双重否定。零如果在场,你会做什么? 您不需要通过将变量设为nil来启动它。除非您在before_链中设置它,否则您将在以后的调用中覆盖它。 您要做的是使用render:json方法。检查API,但它看起来像这样:

render :json => { :success => true, :user => @user.to_json(:only => [:name]) }

授权应该在_filter之前作为回调实现,其余的代码应该被删除并作为继承代码使用。只有输出应该参数化。这里的自定义代码太多

render :json => { :success => true, :user => @user.to_json(:only => [:name]) }