创建方法不会将任何记录添加到我的索引列表中
Create method does not add any records to my index list
我是 rails 的新手,我正在尝试传递 crud 方法。
我制作了一个 Leads 模型、控制器、视图和路线。
当我提交 /leads/new 页面的表单时,如果我写 post 'leads/index'
在我的 route.rb 文件中,我的浏览器将我定向到没有显示我的新记录的索引页面。
如果我在路由中跳过上面的代码,我会收到路由错误。
控制器:
def new
@leads = Leads.new
end
def create
@leads = Leads.new(params[:id])
if @leads.save
redirect_to(:action => index)
else
render(new)
end
end
路线:
resources :leads
查看索引:
<h1>Leads#index</h1>
<%= link_to 'Add new Leads', new_lead_path %>
<% @leads.each do |lead| %>
<tr>
<td><%= lead.name %></td>
<td><%= lead.familyname %></td>
<td><%= lead.mobile %></td>
<td><%= lead.email %></td>
<td><%= link_to 'show' , lead %></td>
</tr>
<% end %>
查看新内容:
<h1>Leads#new</h1>
<%= render 'form' %>
Rails 表示模型名称应该是单数,控制器名称应该是复数。如果你遵循它,对你的理解和所有其他人的理解都会更好。
首先 -- Sontya 是正确的,您的 Lead
模型应该是单一的。这将有助于解决路由问题。
其次,您将 params[:id]
传递给 Leads.new
,这将通过显式传递的 id
产生线索,而不是让 ActiveRecord
处理它。你想通过(我猜,因为你没有你的 form
部分代码) params[:lead]
而不是(或任何形式调用它)。
此外,还有一些小问题,比如调用您创建的单曲 Lead
@leads
(应该是 @lead
)——这应该不会造成任何问题,但更好 convention/better 为了便于阅读。
我是 rails 的新手,我正在尝试传递 crud 方法。 我制作了一个 Leads 模型、控制器、视图和路线。
当我提交 /leads/new 页面的表单时,如果我写 post 'leads/index'
在我的 route.rb 文件中,我的浏览器将我定向到没有显示我的新记录的索引页面。
如果我在路由中跳过上面的代码,我会收到路由错误。
控制器:
def new
@leads = Leads.new
end
def create
@leads = Leads.new(params[:id])
if @leads.save
redirect_to(:action => index)
else
render(new)
end
end
路线:
resources :leads
查看索引:
<h1>Leads#index</h1>
<%= link_to 'Add new Leads', new_lead_path %>
<% @leads.each do |lead| %>
<tr>
<td><%= lead.name %></td>
<td><%= lead.familyname %></td>
<td><%= lead.mobile %></td>
<td><%= lead.email %></td>
<td><%= link_to 'show' , lead %></td>
</tr>
<% end %>
查看新内容:
<h1>Leads#new</h1>
<%= render 'form' %>
Rails 表示模型名称应该是单数,控制器名称应该是复数。如果你遵循它,对你的理解和所有其他人的理解都会更好。
首先 -- Sontya 是正确的,您的 Lead
模型应该是单一的。这将有助于解决路由问题。
其次,您将 params[:id]
传递给 Leads.new
,这将通过显式传递的 id
产生线索,而不是让 ActiveRecord
处理它。你想通过(我猜,因为你没有你的 form
部分代码) params[:lead]
而不是(或任何形式调用它)。
此外,还有一些小问题,比如调用您创建的单曲 Lead
@leads
(应该是 @lead
)——这应该不会造成任何问题,但更好 convention/better 为了便于阅读。