【发布时间】:2015-04-22 19:37:26
【问题描述】:
我有一个显示所有可用课程的索引视图我填写的值加上我刚刚通过链接传递给方法的类的外键
类索引:
<h1>Listof classes</h1>
<table>
<thead>
<tr>
<th>id</th>
<th>Name</th>
<th>Description</th>
<th>Actions</th>
</tr>
</thead>
<tbody>
<% @classes.each do |class| %>
<tr>
<td><%= class.id %></td>
<td><%= class.name %></td>
<td><%= class.description %></td>
<td><%= link_to 'sign up!', new_sign_up_path(:class_id => class.id), method: :post %></td>
</tr>
<% end %>
</tbody>
</table>
注册控制器:
class SignUpsCOntroller < ApplicationController
before_action :set_sign_ups, only: [:show, :edit, :update, :destroy]
# GET /sign_ups/new
def new
@sign_up = SignUp.new
end
def set_sign_ups
@sign_up = SignUp.find(params[:id])
end
def sign_up_params
params.require(:sign_up).permit(:date, :status, :type, :class_id)
end
end
还有我的注册表单:
<%= form_for(@sign_up) do |f| %>
<div class="field">
<%= f.label :date %><br>
<%= f.date_select :date %>
</div>
<div class="field">
<%= f.label :status %><br>
<%= f.check_box :status %>
</div>
<div class="field">
<%= f.label :type %><br>
<%= f.number_field :type %>
</div>
<div class="field">
<%= f.hidden_field :class_id %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
当我保存它时,它不会保存class_id...我尝试将其解析为整数我尝试过不使用隐藏字段但它总是将其作为空白保存...有什么想法吗?
【问题讨论】:
-
将变量命名为
class以外的名称 - 这是 Ruby 中的保留字。 -
第二。如果您开始命名变量
class和type,您将进入一个痛苦的世界。 -
它们实际上被称为不同,因为我的代码是西班牙语,我在发布内容时会更改它
-
你知道哈希进入你的控制器时是什么吗?要准确查看哪些参数和相关值来自您的表单,您可以在控制器操作中添加调试警报以显示哈希值。代码是 flash[:info] = "Hash: #{params}" 我发现这很有帮助。
标签: ruby-on-rails ruby ruby-on-rails-4 parameters link-to