Установка символов в представлении формы - Ruby on Rails - PullRequest
0 голосов
/ 06 сентября 2010

У меня проблемы с попыткой установить значения символов в виде формы. На мой взгляд, используются несколько переменных экземпляра, @task и @team, @team - единственная, с которой у меня возникают проблемы. Задачи имеют значение: team, которое необходимо установить. В этом представлении @team содержит значение, но когда я нажимаю кнопку «Создать» и создаю сообщение, значение @team теряется, а @task не содержит значения команды.

Вот вид, с которым я имею дело:

Примечание: строка ": team => @ task.team" не работает

<% form_for(@task) do |f| %>
  <%= f.error_messages %>
  <% @task.team = Team.find(@team) %>
  <p><%= @task.team.title%></p>
  <p>
    <%= f.label :title %><br />
    <%= f.text_field :title %>
  </p>
  <p>
    <%= f.label :hours %><br />
    <%= f.text_field :hours %>
  </p>

  <p>
    <%= f.label :team %><br />
    <% :team => @task.team %>
  </p>
  <p>
    <%= f.submit 'Create'%>
  </p>
<% end %>

Метод Post, который вызывается при Create:

 def create
    @task = Task.new(params[:task])

    respond_to do |format|
      if @task.save
        format.html { redirect_to(@task, :notice => 'Task was successfully created.') }
        format.xml  { render :xml => @task, :status => :created, :location => @task }
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @task.errors, :status => :unprocessable_entity }
      end
    end
  end

Ответы [ 2 ]

0 голосов
/ 07 сентября 2010

@ Jordinl прав, когда он упоминает, что вы можете использовать скрытое поле формы.Вы также можете автоматически перенести задачу на команду в контроллере, выполнив что-то вроде

@team = Team.find(params[:team])

, а затем

@team.tasks << Task.new(params[:task])

. Вам необходимо настроить ассоциацию has_many вмодель команды для задач

has_many :tasks

, чтобы это работало.Каждое задание также будет нуждаться в идентификаторе команды, но, похоже, он у вас уже есть.

0 голосов
/ 06 сентября 2010

Почему бы вам не установить его как скрытое поле?

<%= f.hidden_field :team, :value => @task.team %>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...