我对Rails很陌生,做了一些教程,并且我没有web开发背景,所以提前道歉。将选项设置为单选按钮或常规按钮?
我创建了一个非常简单的应用程序,允许用户选择三个可用的状态更新之一。我应该将这三个状态更新存储为字符串还是整数?目前,我的Postgres数据库将状态存储为整数,但我也很好奇,如果有一种方法,我可以指定只能插入数字1,2或3。
第二个问题:我想显示一个表单,显示为三个按钮,每个按钮对应一个特定的设置状态更新。我想让按钮在里面显示一个字符串,以便人们可读,但是状态更新对应于1,2或3.用户可以选择哪种状态,如果他们改变了主意,他们可以选择更改他们选择的状态在提交之前,一旦他们下定决心点击提交按钮。
我应该用单选按钮来完成这个吗?如果是这样,我应该如何使单选按钮显示文本,然后保存为整数?或者我应该只使用普通的按钮?
非常感谢!
UPDATE:
由于@Bot,我能够创建定义人类可读的值给相应的状态的整数像这样的哈希:
配置/ application.rb中:
module MyAppName
class Application < Rails::Application
INDENT_STATUSES = {1 => "DUE", 2 => "SHIPPING", 3 => "SHIPPED", 4 => "CLOSED"}.freeze
end
end
而且_form.html.erb:
<%= simple_form_for(@status) do |f| %>
<%= f.error_notification %>
<div class="form-inputs">
<%= f.input :status , :as => :radio_buttons ,:collection => MyAppName::Application::INDENT_STATUSES.keys, :label_method => lambda { |k| MyAppName::Application::INDENT_STATUSES[k]}, :item_wrapper_class => 'inline', :include_blank => false %>
</div>
<div class="form-actions">
<%= f.button :submit %>
</div>
<% end %>
然而在index.html.erb,状态显示为数字,而不是人类可读的版本:
<h1>Listing statuses</h1>
<table>
<tr>
<th>Status</th>
<th></th>
<th></th>
<th></th>
</tr>
<% @statuses.each do |status| %>
<tr>
<td><%= status.status %></td>
<td><%= link_to 'Show', status %></td>
<td><%= link_to 'Edit', edit_status_path(status) %></td>
<td><%= link_to 'Destroy', status, method: :delete, data: { confirm: 'Are you sure?' } %></td>
</tr>
<% end %>
</table>
<br />
<%= link_to 'New Status', new_status_path %>
我怎么status.status
显示我创建的散列的人类可读的价值?
我用脚手架来构建我的状态,所以状态控制器就是你所期望的。
请把你在这里试过的代码,以便你的问题可以准确地回答。 – Bot