【发布时间】:2013-04-12 17:37:07
【问题描述】:
我有一个需要显示页面列表的视图(我有一个名为 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]})
【问题讨论】:
-
你能把相关的代码块粘贴到视图中吗?
-
您正在正确生成选择标签。您在哪里尝试访问页面 ID?在
:page键下,它是否可能在参数哈希中更深?更多上下文会有所帮助。 -
我是新手,但我认为 :p_id 会自动添加到参数哈希中,并带有所选页面的值,这是真的吗?我正在尝试使用 params[:p_id] 访问控制器中的 :p_id
-
当您提交表单时,您应该会在日志中看到正在发送的参数 - 它们是什么?
-
对,但是您必须单击某处,然后 然后 您会在 params 哈希中看到它。如果您有一个
form_for进一步向上调用,它可能是嵌套的。在您的问题中添加更多代码,它会变得更清晰。
标签: ruby-on-rails ruby drop-down-menu view controller