2017-10-06 42 views
-1

我在我的文章模型中有一個名爲'title'的屬性。如何從下拉菜單保存並顯示選定的值?

我可以把下面的形式爲我new.html.erb:

<p> 
    <%= form.label :title %><br> 
    <%= form.text_field :title %> 
</p> 

這爲用戶鍵入一個標題產生一個輸入框。 在我show.html.erb我可以顯示標題:

<p> 
    <strong>Title:</strong> 
    <%= @article.title %> 
</p> 

是下拉列表不一樣呢? 我開始通過添加一個屬性來我的文章模型和遷移它:

<p> 
    <%= form.select :programlang, [['Ruby','ruby'],['Python','python']]%> 
</p> 

我要救的一個:

rails generate migration add_dropdown_attribute_to_articles programlang:string 

我可以在我的new.html.erb形式把這個兩個選項,用戶選擇和show.html.erb顯示它:

<p> 
    <strong>Language:</strong> 
    <%= @article.programlang %> 
</p> 

我認爲這將顯示是「紅寶石」或「Python的」作爲用戶的選擇,但是這是行不通的。 有沒有錯誤,但沒有值顯示在show.html.erb

我只是想知道如果我真的需要做更多的工作。我想如果能從盒子裏得到 用戶輸入並顯示它,我可以用下拉列表來做同樣的事情。

我一直在試圖找到解釋這一點的指南,但他們都想在下拉列表中使用 值做更復雜的操作。我試圖儘可能保持簡單。我需要將「Python」和「Ruby」添加到種子嗎?

回答

1

試試這個,

<%= form.select :programlang, options_for_select([['Ruby', 'ruby'], ['Python', 'python']], (@article.programlang)), { include_blank: 'None'}, class: "" %> 

在控制器

def article_params 
    params.require(:article).permit(:title, :text, :description, :keyword, :syntax, :programlang) 
end 
+0

我在玩它。我目前得到:app/views/articles/new.html.erb:42:語法錯誤,意外的',',期待和。或::或'['或'。' –

+0

':programlang'來自':programlang' – Nithin

+0

我沒有收到錯誤,但它的功能和以前一樣,不會顯示在我的show.html.erb上 –

0

我覺得這是基本的,它會工作

<%= form.select :programlang, options_for_select([['Ruby','ruby'],['Python','python']]) %> 

或者所選選項

<%= form.select :programlang, options_for_select(['Ruby','Python'], 'Ruby') %> 
相關問題