1

我有一个需要显示页面列表的视图(我有一个名为 Page 的模型),然后我需要所选页面的 id

我在视图中有这段代码

مهمة جديدة

: <%= form_for :task, :url => {:action=>"create", :controller=>"tasks"}, :html => {:class :  

=> "nifty_form"} do |f| %>

 <% if @task.errors.any? %>
    <div id="error_explanation">
      <h2>: عذرا لم نستطع استكمال طلبك</h2>

      <ul>
        <% @task.errors.full_messages.each do |msg| %>
          <li style="color:red;"><%= msg %></li>
        <% end %>
      </ul>
    </div>
  <% end %>
  <div class="field">
    <%= f.label "اسم المهمة" %><br />
    <%= f.text_field :name %>
  </div>
  <div class="field">
    <%= f.label "وصف المهمة" %><br />
    <%= f.text_area :description %>
  </div>
  <div class="actions">
    <button><%= link_to 'العودة الى قائمة المهام', project_tasks_path %></button>
    <%= f.submit "مهمة جديدة"%>
  </div>
<%= select_tag(:page, options_for_select(['a',1])) %>
<% end %>

@pageslist是形式的二维数组[['pagename', 1], ..]

问题是如何访问控制器中所选页面的 page_id ?

我试过params[:p_id]了,但它没有任何帮助吗?

这就是我在控制器中的内容:

@task = Project.find(params[:project_id]).tasks.new(params[:task])

@task.update_attributes({:page_id => params[:p_id]})
4

1 回答 1

0

假设这@pagelist是您所描述的格式,那么在您看来:

<%= select_tag(:page, options_for_select( @pagelist )) %>

您在示例中错过了它,并且只为options_for_select.

有了这样的准备视图,您的create操作将收到page id

params[:page]

这是因为你:page作为第一个参数传递了select_tag.

于 2013-04-12T19:37:36.167 回答