На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
  
    > [Ruby on Rails] делегаты и форма
      В некотором проекте на Ruby On Rails изначально была модель User. Со временем она "распухла" от множества полей. Было решено отделить некоторые поля от неё в отдельную модель, названную UserProfile.

      Частично миграция полей была решена с помощью делегатов от user_profile таким образом:
      ExpandedWrap disabled
        class User < ActiveRecord::Base
          has_one :user_profile
          delegate :nickname, :first_name, :last_name, :language, :city, :address, :country_id, :zip_code,
                   :to => :user_profile
        end
         
        class UserProfile < ActiveRecord::Base
          belongs_to :user
        end


      Теперь вопрос: как указать в представлении (view) форму с полями, необходимыми для создания или изменения полей модели:
      ExpandedWrap disabled
        <% form_for(@user) do |f| %>
          <%= render :partial => "form", :locals => {:f => f} %>
        <% end %>


      сама форма (частично):
      ExpandedWrap disabled
          <%=  f.label :first_name, "First Name".t %>
          <%= f.text_field "first_name", :class => "req" %>
          <%=  f.label :last_name, "Last Name".t %>
          <%= f.text_field "last_name", :class => "req" %>


      Сейчас эти поля отображаются пустыми.
        Использовать form_tag вместо form_for.
          Благодарю за подсказку. Опробую и отпишусь несколькими днями позже.
            Да, похоже, оно.
            0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
            0 пользователей:


            Рейтинг@Mail.ru
            [ Script execution time: 0,0200 ]   [ 15 queries used ]   [ Generated: 26.04.24, 10:41 GMT ]