ERB options_for_select与padrino /西纳特拉
问题描述:
我试图在形式选择,但它不是为我工作,我尝试ERB options_for_select与padrino /西纳特拉
<%= 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>
调用,它是由控制器进行调用,我不知道如何把这个多出来一点点,它是基于数据库的模型,它们返回的数据正如我写的,但这种形式不起作用。我试图写下新的表格部分,然而问题再次出现。
我试图只用HTML形式,但我不能告诉选择通过POST发送数据,我在网站管理非常薄弱,我只是程序员。也许这是这样的,但我不知道如何作出正确的,当我把
和值(有我在能够产生正确的选择。但它没有发送任何数据。
答
我终于解决了的问题,我用Google搜索的使用
f.select(:state, :collection => @states, :fields => [:name, :id])
的另一种风格,我把数据从模型直接转化形式和它的作品。有关表单我使用的文档构建使用数组和哈希的其他方式,这是更好的办法。
谢谢!
无法重现。 'options_for_select([[“Peter”,1],[“John”,2],[“Trish”,3]]) =>彼得 \ n 约翰 \ n Trish“'......您能否提供[mcve]?上面给出的例子完美地工作。 –
哦,对我来说,它仍然是失败的,它用于从Padrino生成的管理,我会尝试发布更多的代码,但它是迷上了巨大的项目。将立即张贴 – Levi
'@ children'是什么?你没有显示在代码中定义的位置。我也很困惑:'@categories = Children.all' - 你没有在任何地方使用'@ categories'变量? –