Ruby 通过Sinatra模型和验证
正如我最近开始的另一个类似的线程中提到的,我正在将一个ASP MVC应用程序移植到Sinatra,部分是为了学习,部分是为了生产 目前我的ASP MVC应用程序没有视图,它只是将模型公开为Xml/Json等,并以相同的方式接受它们。因此,在有人向服务器发送模型的场景中,它将自动绑定对象,执行验证,然后返回验证错误(如果有),如果没有,则执行相关操作 现在在Sinatra,ASP MVC是一件非常棒的事情,因为我在如何做这些部分上有更多的选择,但是我不知道有什么gems/libraries功能可以用来做这件事Ruby 通过Sinatra模型和验证,ruby,validation,sinatra,Ruby,Validation,Sinatra,正如我最近开始的另一个类似的线程中提到的,我正在将一个ASP MVC应用程序移植到Sinatra,部分是为了学习,部分是为了生产 目前我的ASP MVC应用程序没有视图,它只是将模型公开为Xml/Json等,并以相同的方式接受它们。因此,在有人向服务器发送模型的场景中,它将自动绑定对象,执行验证,然后返回验证错误(如果有),如果没有,则执行相关操作 现在在Sinatra,ASP MVC是一件非常棒的事情,因为我在如何做这些部分上有更多的选择,但是我不知道有什么gems/libraries功能可以
我的理想方案是让我的纯html/js前端将模型发布为json,然后将其转换为实际模型,在那里我可以验证它(通过Sinatra或其他框架),然后根据验证结果做出决定。听起来像ORM的普通情况。例如,您可以使用。有了它,您只需通过HTTP将表单发送到特定路由,然后执行以下操作:
post '/create' do
@post = Post.new(params[:your_form])
if @post.save
erb :a_template
else
erb :your_form
end
end
其中params[:your_form]是包含表单内容的散列。根本不需要JSON。如果保存过程失败(出于验证原因或其他原因),模型对象@post
将出现错误,您可以在不同的视图中处理这些错误(:例如,您的表单
)
致意
Tobias试着看看这个宝石:
{:attribute1 => "value1", :attribute2 => "value2"}.to_json
在您的Sinatra应用程序上,捕捉它们并根据这些属性构建对象,您还可以使用Sinatra进行验证:
def '/create_object' do
content_type :json
obj = Object.new(JSON.parse(params[:object]))
if obj.save
obj.to_json
else
error 400, user.errors.to_json
end
end
我在看DataMapper,但我的开发环境是windows,数据适配器似乎不起作用,在这个问题的范围内,我不需要ORM,我只想得到一个模型并验证它,但在我的实际情况下,ORM将是ITI的一部分如果你只需要验证系统,可能会有帮助。我可以只需要一个对_json的实例调用吗?i、 我创建一个Person类的实例,然后将其序列化并发送出去?因为我的一些对象非常复杂。我相信您应该能够执行类似于
Person.first.to_json
的操作。如果您想进行更高级的序列化,那么可以将序列化程序传递给to_json方法;请看下面的内容,了解有关序列化的更多信息:有关于验证的信息吗?我找到的所有与模型验证和ruby相关的资源都返回了ActiveRecord和RoR。