【发布时间】:2019-12-29 23:51:59
【问题描述】:
我目前正在创建一个 Rails 表单。到目前为止,它一直在轻松地将数据传递到数据库。最近,但是它不再在数据库中找到我需要的任何数据,它只能找到用户表而没有找到连接的表。
这是我的部分表格:
<h1>Energy Assistance Application</h1>
<br />
<%= form_for(@user) do |f| %>
<%= render 'county_fields', f: f%>
<%= render 'contact_info_fields', f: f %>
<%= render 'household_members_fields', f: f%>
<%= render 'household_type_fields', f: f%>
这是我的控制器的一部分:
def create
addresses = params[:addresses].permit([:county]).to_h
contact_info = params[:contact_info].permit(params[:contact_info].keys).to_h
household = params[:household_type].permit([:house_type]).to_h
household_members = member_params
utilities = utility_params
dhis = dhi_params
@workflow = CreatesUser.new(address_info: addresses,
contact: contact_info, household: household, members: household_members, utilities: utilities, dhis: dhis)
@workflow.create
redirect_to users_path
end
创建用户:
def initialize(address_info: [], has_mail: false, contact: [], household: [], members: [],
utilities: [], dhis: [])
@address_info = address_info
@contact = contact
@household = household
@members = members["household_members_attributes"]
@utilities = utilities["utilities_attributes"]
@dhis = dhis["dhis_attributes"]
end
def build
self.user = User.new(startdate: Time.zone.today)
user.addresses = get_addresses
user.contact_info = get_contact
user.household_type = get_household
user.household_members = get_members
user.utilities = get_utilities
user.dhis = get_dhis
user
end
def create
build
result = user.save
result ? print("Saved!\n") : print("Failed!\n")
end
我的 index.html.erb:
<h1>All Users</h1>
<% @users.each do |user|%>
<%= user.utilities%>
<ul>
<li>County:
<% user.addresses.each do |address|%>
<%=address.county%>
<%end%>
</li>
<% if !user.contact_info.nil? %>
<li>Phone: <%= user.contact_info.phone%></li>
<li>Phone Type:<%= user.contact_info.phone_type%></li>
<li>Email: <%= user.contact_info.email%></li>
<%end%>
<li>Household: <%= user.household_type.house_type%></li>
</ul>
当工作流创建时,它保存成功,但是当我运行我的索引时,我得到了这个错误:
Completed 500 Internal Server Error in 19ms (ActiveRecord: 1.1ms)
ActionView::Template::Error (undefined method `house_type' for nil:NilClass):
12: <li>Phone Type:<%= user.contact_info.phone_type%></li>
13: <li>Email: <%= user.contact_info.email%></li>
14: <%end%>
15: <li>Household: <%= user.household_type.house_type%></li>
16: </ul>
17:
18: <h3> Household Members </h3>
app/views/users/index.html.erb:15:in `block in _app_views_users_index_html_erb___590344624549979162_70244223831340'
我不知道为什么会发生这种情况,即使当我回到曾经工作的旧分支时,它们也会在这里失败。 谢谢你能给我的任何帮助。如果您需要更多信息,我很乐意提供给您。
【问题讨论】:
-
您能否添加您的用户模型(至少是关系部分)。
标签: ruby-on-rails ruby database forms