我试图在表单中选择,但它不适合我,我试过
<%= f.select :children, options_for_select(@children.collect { |child| [child.name, child.id]}) %>
并且
@children.collect { |child| [child.name, child.id]})
这对我来说非常适合撬。
=> [["Peter", 1],
["John", 2],
["Trish", 3],
但它仍未通过
TypeError - no implicit conversion of Array into Hash:
我有点失落:(
你有任何提示吗?
============ 编辑:
就是这种形式
<% error = @class.errors.key?(:children) && @article.errors[:children].count > 0 %>
<fieldset class='control-group <%= error ? 'has-error' : ''%>'>
<%= f.label :children, :class => 'control-label' %>
<div class='controls'>
<% @children = Children.all %>
<%= f.select :children, options_for_select(@children.collect { |child| [child.name, child.id]}) %>
<span class='help-inline'><%= error ? f.error_message_on(:children) : "Ex: Article category" %></span>
</div>
</fieldset>
<% @author = session[:account_id] %>
<%= f.hidden_field :author, :value => @author %>
<input name="author" form='article' type="hidden" value="4" />
<div class="form-actions">
<%= f.submit pat(:save), :class => 'btn btn-primary' %>
<%= f.submit pat(:save_and_continue), :class => 'btn btn-info', :name => 'save_and_continue' %>
<%= link_to pat(:cancel), url(:articles, :index), :class => 'btn btn-default' %>
</div>
表单由
调用<ul class="nav nav-tabs">
<li> <%= link_to tag_icon(:list, pat(:list)), url(:articles, :index) %></li>
<li class="active"> <%= link_to tag_icon(:plus, pat(:new)), url(:articles, :new) %></li>
</ul>
<div class="tabs-content">
<% form_for :article, url(:articles, :create), :class => 'form-horizontal' do |f| %>
<%= partial 'articles/form', :locals => { :f => f } %>
<% end %>
</div>
它是从控制器调用的,我不知道如何把它更多一点,它基于db模型,它们在我写的时候返回数据,但这种形式不起作用。我试着写下表单的新部分,但问题又来了。
我试图只使用html表单,但我无法告诉select通过POST发送数据,我在webmastering中非常弱,我只是程序员。也许就是这样,但是当我把
时,我不知道如何做对和值(我能够生成正确的选择。但它没有发送任何数据。
答案 0 :(得分:0)
我终于解决了这个问题,我用Google搜索了另一种用法
f.select(:state, :collection => @states, :fields => [:name, :id])
我将模型中的数据直接放入表单中并且可以正常工作。我使用的表单的文档是使用数组和散列的另一种方式构建的,这是更好的方法。
谢谢!