首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不带for的SimpleForm (非模型表单)

不带for的SimpleForm (非模型表单)
EN

Stack Overflow用户
提问于 2011-03-03 21:13:16
回答 5查看 58.6K关注 0票数 81

可以在没有模型的情况下使用Simple Form (by: Plataformatec)吗?

https://github.com/plataformatec/simple_form

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2011-03-03 21:56:12

您可以使用:symbol作为第一个参数。

代码语言:javascript
复制
<%= simple_form_for :user, url: users_path do |f| %>
  <%= f.input :name, as: :string %>
  ...
<% end %>

它将输出类似如下的内容:

代码语言:javascript
复制
<form novalidate="novalidate" class="simple_form user" action="/users" accept-charset="UTF-8" method="post">
  ...
  <div class="input string required user_name">
    <label class="string required" for="user_name">
      <abbr title="required">*</abbr> Name
    </label>
    <input class="string required" type="text" name="user[name]" id="user_name" />
  </div>
  ...
</form>
票数 126
EN

Stack Overflow用户

发布于 2013-07-03 03:38:59

不幸的是,simple_form依赖于使用模型。从本质上讲,如果有类似于simple_form_tag和input_tag方法的东西与它们的rails *_tag帮助器等同,那就更好了。在此之前,有一个简单的解决办法。

在表单中使用符号而不是类,并显式传递该值以防止simple_form尝试访问模型属性。

代码语言:javascript
复制
<%= simple_form_for :user, :url => '/users' do |f| %>
  <%= f.text_field :name, input_html: { value: nil } %>
<% end %>

这将避免undefined method 'name' for User错误。

票数 19
EN

Stack Overflow用户

发布于 2016-08-06 00:02:41

您还可以在表单模型中使用模型外部的字段,simple_fields_for如下所示:

代码语言:javascript
复制
<%= simple_form_for @user do |f| %>
  <%= f.input :name %>

  <%= simple_fields_for :no_model_fields do |n| %>
    <%= n.input :other_field %>
  <% end %>
<% end %>

这是一个简单而实用的解决方案,因为您可以从不同的模型创建不同类型的字段,也可以不使用模型

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5181143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档