我的文章模型中有一个名为'title'的属性。
我可以将以下内容放在new.html.erb的表单中:
<p>
<%= form.label :title %><br>
<%= form.text_field :title %>
</p>
这会为用户生成一个输入框以输入标题。 在我的show.html.erb中,我可以用:
显示标题<p>
<strong>Title:</strong>
<%= @article.title %>
</p>
下拉列表不一样吗? 我首先在我的文章模型中添加了一个属性并进行迁移:
rails generate migration add_dropdown_attribute_to_articles programlang:string
我可以将它放在我的new.html.erb表单中:
<p>
<%= form.select :programlang, [['Ruby','ruby'],['Python','python']]%>
</p>
我想保存用户选择的两个选项中的一个并在show.html.erb中显示它:
<p>
<strong>Language:</strong>
<%= @article.programlang %>
</p>
我认为这会显示'Ruby'或'Python'作为用户选择,但这不起作用。 没有错误,但show.html.erb
中没有显示任何值我只是想知道我是否真的需要为此工作做更多的事情。我想如果能得到的话 用户从框中输入并显示它,我可以使用下拉列表执行相同操作。
我一直试图找到一个解释这个问题的指南,但他们都希望用更复杂的行动来解决这个问题 下拉列表中的值。我试图让它尽可能简单。我是否需要将“Python”和“Ruby”添加到种子中?
答案 0 :(得分: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
答案 1 :(得分:0)
我认为这是基本的,它会起作用
<%= form.select :programlang, options_for_select([['Ruby','ruby'],['Python','python']]) %>
或选择选项
<%= form.select :programlang, options_for_select(['Ruby','Python'], 'Ruby') %>