2017-10-18 61 views
0

我试图在形式选择,但它不是为我工作,我尝试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' %> 
    &nbsp; 
    <%= f.submit pat(:save_and_continue), :class => 'btn btn-info', :name => 'save_and_continue' %> 
    &nbsp; 
    <%= 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发送数据,我在网站管理非常薄弱,我只是程序员。也许这是这样的,但我不知道如何作出正确的,当我把

和值(有我在能够产生正确的选择。但它没有发送任何数据。

+0

无法重现。 'options_for_select([[“Peter”,1],[“John”,2],[“Trish”,3]]) =><选项值= \“1 \”>彼得 \ n <选项值= \“2 \”>约翰 \ n <选项值= \“3 \”> Trish“'......您能否提供[mcve]?上面给出的例子完美地工作。 –

+0

哦,对我来说,它仍然是失败的,它用于从Padrino生成的管理,我会尝试发布更多的代码,但它是迷上了巨大的项目。将立即张贴 – Levi

+0

'@ children'是什么?你没有显示在代码中定义的位置。我也很困惑:'@categories = Children.all' - 你没有在任何地方使用'@ categories'变量? –

回答

0

我终于解决了的问题,我用Google搜索的使用

f.select(:state, :collection => @states, :fields => [:name, :id]) 

的另一种风格,我把数据从模型直接转化形式和它的作品。有关表单我使用的文档构建使用数组和哈希的其他方式,这是更好的办法。

谢谢!