我在尝试在表单视图中设置符号值时遇到问题。我的视图有几个实例变量被使用,@ task和@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 %>
在Create上调用的Post方法:
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
答案 0 :(得分:0)
为什么不将它设置为隐藏字段?
<%= f.hidden_field :team, :value => @task.team %>
答案 1 :(得分:0)
@team = Team.find(params[:team])
然后
@team.tasks << Task.new(params[:task])
您需要在团队模型中为任务设置has_many关联
has_many :tasks
为此工作。每个任务也需要团队ID,但听起来你已经拥有了。