Приложение ruby ​​on rails - тег html5, динамически генерируемый с записями таблицы sqlite3 - PullRequest
0 голосов
/ 20 ноября 2011

Я пытаюсь создать модель безопасности с помощью sqlite3.

Этот код находится внутри файла _form.html.erb внутри ../views/users/

У меня есть модель пользователя и модель user_level (администратор, пользователь и т. Д.).

rails generate scaffold user_level desc:string
rails generate scaffold user email:string password:string user_level:references

При создании / редактировании «пользователя» я хочу иметь возможность выбрать значение «user_level» из тега html5.

Я получаю undefined method desc 'для ошибки nil: NilClass` при попытке просмотреть страницу.

<%= form_for(@user) do |f| %>
  <% if @user.errors.any? %>
    <div id="error_explanation">
      <h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being saved:</h2>

      <ul>
      <% @user.errors.full_messages.each do |msg| %>
        <li><%= msg %></li>
      <% end %>
      </ul>
    </div>
  <% end %>

  <div class="field">
    <%= f.label :email %><br />
    <%= f.text_field :email %>
  </div>
  <div class="field">
    <%= f.label :password %><br />
    <%= f.text_field :password %>
  </div>
  <div class="field">
    <%= f.label :user_level %><br />
    <select id="select_user_level">
      <%= @user_level.desc do |desc| %>
        <option value = "1"><%= desc %></option>
      <% end %>
    </select>
    <%= f.text_field :user_level %>
  </div>
  <div class="actions">
    <%= f.submit %>
  </div>
<% end %>

1 Ответ

0 голосов
/ 20 ноября 2011
<%= f.collection_select :user_level, User::USER_LEVEL, :to_s :humanize %>

Затем в модели вы должны добавить массив, содержащий все возможные уровни пользователя, например:

USER_LEVEL = ["admin", "mod", "user"]

Затем он должен работать, и вам больше не нужен @user_level

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...