可以在没有模型的情况下使用Simple Form (by: Plataformatec)吗?
发布于 2011-03-03 21:56:12
您可以使用:symbol作为第一个参数。
<%= simple_form_for :user, url: users_path do |f| %>
<%= f.input :name, as: :string %>
...
<% end %>它将输出类似如下的内容:
<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>发布于 2013-07-03 03:38:59
不幸的是,simple_form依赖于使用模型。从本质上讲,如果有类似于simple_form_tag和input_tag方法的东西与它们的rails *_tag帮助器等同,那就更好了。在此之前,有一个简单的解决办法。
在表单中使用符号而不是类,并显式传递该值以防止simple_form尝试访问模型属性。
<%= simple_form_for :user, :url => '/users' do |f| %>
<%= f.text_field :name, input_html: { value: nil } %>
<% end %>这将避免undefined method 'name' for User错误。
发布于 2016-08-06 00:02:41
您还可以在表单模型中使用模型外部的字段,simple_fields_for如下所示:
<%= simple_form_for @user do |f| %>
<%= f.input :name %>
<%= simple_fields_for :no_model_fields do |n| %>
<%= n.input :other_field %>
<% end %>
<% end %>这是一个简单而实用的解决方案,因为您可以从不同的模型创建不同类型的字段,也可以不使用模型
https://stackoverflow.com/questions/5181143
复制相似问题