我对Rails很新。
我正在寻找最常见的“轨道式”方式来显示表单数据的输出。我知道Simple form和Formtastic是以用户友好的方式编写简洁代码和显示输入字段的好选择。但是,我正在寻找稍微不同的东西,我想从这些表单中显示数据作为输出,我想以类似和简洁的方式进行。在过去几天我一直在找不到任何东西,所以我想我应该问Stack Overflow。
你通常做什么:
首先,感谢最初的回应。我想我应该澄清一下我的问题。由于答案没有达到标准。我已经在控制器中有一个show方法,以及它的视图模板。目前,我使用form_for在表单中单独显示每个字段大约12个字段。请参阅下面的示例代码段:
<%= form_for(@event) do |f| %>
<div class="row-fluid">
<div class="span6">
<%= render 'shared/error_messages' %>
<%= f.label :title %>
<%= f.text_field :title, :disabled => true %>
<%= f.label :start_date %>
<%= f.date_field :start_date, :disabled => true %>
</div>
</div>
<% end %>
我想也许更好的问题是,它们是否相当于为用户显示数据的form_for方法,而不是编辑它而只是为了阅读它?看起来它们似乎是一个标准我没有发现的方法。
答案 0 :(得分:0)
构建表单的最简单方法是使用rails g scaffold Example name:string
这将为名为Example的Model生成Model,Views,Controller和必要的数据库迁移,并使用Name属性作为字符串。
然后,您将使用html和css为视图设置样式。
导轨指南here上有大量有用的信息。
答案 1 :(得分:0)
虽然这个问题很模糊,但你必须明白这个功能正是 Rails的构建方式(提交数据并能够在其他地方显示/操作它)
数据强>
MVC
应用程序中的数据受一个非常重要的因素约束 - 数据库
如果您通过表单提交数据,那么您的目标是将其存储在数据库中,并将其显示在其他视图/控制器方法中
因此,对您的答案的直截了当的问题是遵守MVC processes,并将您的数据保存到中央存储库(数据库或其他),稍后您可以调用:
查看强>
要将数据导入数据存储,首先需要提交
MVC的view
部分是您可以显示UI的地方,也是您放置表单的地方。有一个关于如何设计这个here的完整教程,但为了演示,这里有一个如何使用表单的例子:
#app/views/posts/new.html.erb
<%= form_for @post do |f| %>
<%= f.text_field :title %>
<%= f.text_field :body %>
<%= f.submit %>
<% end %>
<强>控制器强>
您输入到视图中的数据将在保存
时发送到您的控制器数据通过HTML POST
方法发送,由Rails作为params[]
哈希读取。此哈希包含HTML表单中的所有已发送项目,可以像这样使用:
#app/controllers/posts_controller.rb
def new
@post = Post.new
end
def create
@post = Post.new(post_params)
@post.save
end
private
def post_params
params.require(:post).permit(:title, :body)
end
<强>模型强>
新创建的.save
对象上的Post
方法,基本上告诉您的模型将数据放入数据库(或其他数据存储),然后您可以稍后提取(使用{{ 1}}方法或类似方法)
.find
重要的是要注意您的模型不存储您的数据,他们只是提供一个接口(如果您愿意,API)将数据保存到某种数据存储(即数据库)
模型非常重要,因为它们允许您构建和关联您的数据,创建真正深度和部署的能力强大的应用程序