Вложенные формы в направляющих - получающий доступ к атрибуту в has_many отношении

У меня есть пользователь и модель профиля. У одного пользователя может быть много профилей. Я должен получить доступ только к одной информации от раздела профилей (то есть номер телефона) в моей пользовательской модели во время пользовательского процесса создания. Следовательно я пытаюсь сделать его через attr_accessible. Мой user.rb похож на это.

has_many :profiles
attr_accessible :handle, :email, :password, :profile_mobile_number
attr_accessor : :profile_mobile_number

Проблема, с которой я сталкиваюсь, состоит в том, что, когда я пытаюсь назвать метод получателя profile_mobile_number в методе в user.rb (метод закрыт, хотя я думаю, что он не имеет значения), я получаю нулевое значение. Я использую следующее в своей форме users/new.html.erb

Мой вопрос - то, что правильный путь состоит в том, чтобы сделать это? Если я использую <% f.fields_for :profile do |ff| -%> или <% f.fields_for :profiles do |ff| -%> (заметьте, что второй является множественным числом). Когда я использую множественное число: профили, я даже не вижу поля на форме. Что я пропускаю здесь? И каково время, которое должно использоваться в модели user.rb?: profile_phone_number или: profiles_phone_number?Спасибо.

23
задан Puce 21 January 2015 в 17:32
поделиться

3 ответа

После использования pdftohtml в течение некоторого времени и будучи недоволен результатами отображения HTML-версии, я рассматриваю возможность использования либо google apps document API, либо scribd API (мой любимый сейчас)

http://www.scribd.com/developers/api

В конце концов, я, вероятно, буду использовать pdftohtml, чтобы просто извлечь текстовое содержимое pdf-файла и api scribd для отображения исходного файла на странице пользователя

-121--2692065-

Класс CS193P Стэнфорда на iPhone имел проект под названием HelloPoly, который может быть именно тем, что вы хотите - см. домашнюю страницу класса для спецификации, а затем посмотреть видео о том, как он был реализован (и google решения от людей, которые сделали задание).

-121--1881284-

Можно сделать что-то подобное:

<% form_for @user, :url => { :action => "update" } do |user_form| %>
  ...
  <% user_form.fields_for :profiles do |profiles_fields| %>
     Phone Number: <%= profiles_fields.text_field :profile_mobile_number %>
   <% end %>
<% end %>

Но так как у вас уже есть связь, вы можете использовать " accepts _ nested _ attributes _ for '

20
ответ дан 29 November 2019 в 02:19
поделиться

Поскольку не существует стандартного определения отладки или выпуска, это невозможно сделать. Я могу думать по крайней мере о четырех разных вещах, которые могут быть использованы, и все они могут быть изменены независимо. Из кода можно протестировать только два.

  1. Уровень оптимизации компилятора
  2. Отладочные символы, включенные в двоичный файл (их можно даже удалить позднее)
  3. assert () enabled (NDEBUG не определен)
  4. logging off
-121--2344651-

Мы также предоставляем довольно полный курс для начала работы с Telerik

http://www.telerik.com/support/documentation-and-tutorials/step-by-step-tutorial-for-silverlight.aspx

А также страницу, которую вы можете просмотреть для быстрого сравнения между тем, что мы предлагаем, и MS Toolkit и совершенно новой страницей (только что видели окончательную редакцию вчера вечером:D) об улучшениях производительности для номера люкс Telerik, который скоро появится в прямом эфире.

В целом это зависит от ваших потребностей, как упоминалось выше, у Toolkit есть разные полосы и нет установленного цикла выпуска, плюс есть довольно надежные средства управления в нашем номере люкс, которые вы не найдете в инструменте. И что касается упомянутой выше документации, сообщите нам, если вы считаете, что нам не хватает в какой-либо области. У нас есть несколько сотен демонстраций за пределами программы курсов и образцов приложений на сайте, поэтому, если вы считаете, что нам нужно быть более конкретными на что-либо, дайте мне крик.

-121--3505041-

Для этого можно использовать ' accepts _ nested _ attributes _ for '; но есть небольшая хитрость в формах:

Вы должны использовать единственное число и вызывать fields_for для каждого профиля, например:

<% form_for @user do |f| -%>
<% @user.profiles.each do %>
<% f.fields_for :profile_attributes, profile do |ff| -%>
<% end %>

Notice that is : profile _ attributes , а не только : profile .

0
ответ дан 29 November 2019 в 02:19
поделиться

Вам следует посмотреть RailsCasts Nested Model Form .
спасибо Райану Бейтсу отличная работа.

13
ответ дан 29 November 2019 в 02:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: