2014-12-06 78 views
4

我希望能够在索引页面上使用<%=呈现“表格”%>。这是否正确?它似乎工作,但是,我只是想确保这是做到这一点的正确方法。Rails:在索引上呈现表格

class RemindersController < ApplicationController 
... 
    def index 
     @reminders = Reminder.all 
     @reminder = Reminder.new 
    end 
.... 

回答

4

在索引视图中包含“新”/“编辑”表单没有任何问题。这不是'正常的'Rails方式,但它可以工作。请记住,一旦您在页面上填写了表单,您仍然需要提交该表单(一次只能提交一份表单)。这是它变得棘手的地方。如果您想要从同一页面创建和更新提醒,则必须使用不同的操作。 '新' 的形式将类似于:

<%= form_for @reminder, url: {controller: "reminders", action: "create"} do |r| %> 
    <form code goes here> 
    <%= r.submit %> 
<% end %> 

和 '编辑' 的形式(或多个)会是这样的:

<%= @reminders.each do |reminder| %> 
    <%= form_for reminder, url: {controller: "reminders", action: "update"} do |r| %> 
    <form code goes here> 
    <%= r.submit %> 
    <% end %> 
<% end %> 

编辑

如果你想整个表格在_form.html.erb部分内部,您也可以将url作为参数传入,如下所示:

<%= render partial: 'form', locals: {path: {controller: "reminders", action: (create/update)}} %> 

然后在你的内部:

<%= form_for @reminder, url: path %> 
+0

非常感谢!这正是我需要的正确方向:) – JeremyE 2014-12-06 05:20:40