Rails没有模型逻辑的前端表单

时间:2017-11-28 15:19:21

标签: ruby-on-rails forms

我正在开发一个Rails应用程序,模型逻辑不在前端,它从后端API中检索数据。

我指的是表单助手指南,以及2.2节将表单绑定到对象中的,它解释了表单与模型对象的绑定,因此新的和编辑表单可以是单个页面通过将表单元素绑定到模型对象。

articles_controller.rb:


def new
  @article = Article.new
end

使用form_for的相应视图如下所示

articles/new.html.erb:


<% form_for :article, @article, :url => { :action => "create" }, :html => {:class => "nifty_form"} do |f| %>
  <%= f.text_field :title %>
  <%= f.text_area :body, :size => "60x12" %>
  <%= submit_tag "Create" %>
<% end %>

http://guides.rubyonrails.org/v2.3.11/form_helpers.html

在我的代码中,我通过API调用获取值作为JSON对象。

def view_request

    @request_type = "View"

    id = params["id"]
    rest_resource = RestClient::Resource.new( ENV['TEST_API'] + "/" + id, :verify_ssl => false )
    request = rest_resource.get :Authorization => cookies.signed[:remember_token], :content_type => 'application/json'
    @response = JSON.parse(request)
    render " request"
end

在这种情况下,为新建和编辑创建表单的最佳方法是什么?

1 个答案:

答案 0 :(得分:3)

我想你想查看form_tag。然后在该表单中,您将使用tag变体,例如text_field_tag

你需要做一些额外的工作才能让你的一个表单管理新的和编辑,但它并不是太糟糕。

BTW,为了将我的观点与我的模型完全分离,我专门使用form_tag并且从不在我的视图中访问模型或模型实例。这有点疯狂,但它可以帮助我保护视图不受模型变化的影响。