私は Rails を初めて使用し、いくつかのチュートリアルを行っています。また、Web 開発のバックグラウンドがないため、事前にお詫び申し上げます。
ユーザーが利用可能な 3 つのステータス更新のいずれかを選択できるようにする、非常に単純なアプリを作成しています。これら 3 つのステータス更新を文字列または整数として保存する必要がありますか? 現在、私の Postgres データベースはステータスを整数として保存していますが、1、2、または 3 の数字のみを挿入できるように指定できる方法があるかどうかも知りたいです。
2 番目の質問: 3 つのボタンとして表示されるフォームを表示したいと思います。各ボタンは、特定のセット ステータスの更新に対応しています。人間が判読できるようにボタンの内部に文字列を表示したいのですが、ステータスの更新は 1、2、または 3 のいずれかに対応します。ユーザーは、気が変わった場合に選択したステータスを変更する送信する前に送信し、決定したら送信ボタンを押します。
これを達成するためにラジオボタンを使用する必要がありますか? もしそうなら、ラジオボタンがテキストを表示し、整数として保存する場所をどのように作成すればよいですか? それとも通常のボタンを使用する必要がありますか?
どうもありがとう!
アップデート:
@Bot のおかげで、次のように、人間が読み取れる値を対応するステータス整数に定義するハッシュを作成できました。
config/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
作成したハッシュの人間が読める値を表示するにはどうすればよいですか?
ステータスを構築するために足場を使用したので、ステータス コントローラーは期待どおりのものです。