2017-10-18 60 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]) 

的另一種風格,我把數據從模型直接轉化形式和它的作品。有關表單我使用的文檔構建使用數組和哈希的其他方式,這是更好的辦法。

謝謝!