在索引视图中显示要执行的重要操作

时间:2014-08-09 02:29:19

标签: ruby-on-rails view posting

新鲜的学习轨道,温柔。没有编程经验,但学习。

构建简单的应用程序:一个应用程序,询问"什么是你现在可以做的最重要的事情,"为您提供一个答案字段,提交它,然后显示存储的重要内容。

理想情况下,它们不会存储在索引页面上,但出于学习目的,我试图让他们这样做。

控制器代码:

class FacilitatesController < ApplicationController

  def index
    @facilitate = Facilitate.all
  end

  def new
    @facilitate = Facilitate.new
  end

  def create
    @facilitate = Facilitate.new(params[:facilitates])
    @facilitate.save
    redirect_to @facilitate
  end

  private

  def facilitate_params
    params.require(:facilitate).permit(:answer)
  end

  def show 
    @facilitate = Facilitate.find(params[:id])
  end

end

索引查看代码:

<h1>Impactful Task Elicitation</h1>

<h1>Listing Stored To dos</h1>

<table>



</table>

<%= link_to 'Store impactful tasks', new_facilitate_path %>

新视图代码:

<h1>What is the most impactful task?</h1>

<p>Store below, motherbiatch</p>

<%= form_for :facilitate, url: facilitates_path do |f| %>

  <p>
    <%= f.label :answer %><br>
    <%= f.text_area :answer %>
  </p>

  <p>
    <%=f.submit 'Save Task' %>
  </p>
<% end %> 

到目前为止,我可以从索引,促进/新,并回答问题,存储我的重要事项。它然后带我去促进/ 33(ID I&m 39假设,或者我自己的数字,任务明智)

我想在Advant / 33(或它最终成为的任何数字)页面以及索引页面上显示这些任务。

我已经按照类似表格的说明进行了操作:http://guides.rubyonrails.org/getting_started.html但是,我仍然无法将我的存储空间设置为显示在任何地方。

任何帮助都会很棒。


1 个答案:

答案 0 :(得分:0)

在您的控制器中,show行下面有private方法。这意味着它只能从控制器内部调用,因此您将被发送到show模板,而不会调用该方法(@facilitate将为零)。

def show方法移到private行以上。


  

然后我需要提供便利/ 33(ID I&m;假设,或者我自己的号码,任务明智)

redirect_to @facilitate表示在创建便利之后,转到它的show方法和页面。 33只是该特定便利的数据库参考,可以使用Facilitate.find(params[:id])再次查找。

你没有发布app / views / facilit / show.html.erb的样子,但是如果你想显示新创建的便利,那么它应该有这样的一行:

<%= @facilitate.answer %>

  

我想在Advant / 33(或者它最终成为的任何数字)页面以及索引页面上显示这些任务。

如果您只关心列表,而不关心单个便利页面,那么在创建之后,您可以通过将create更改为redirect_to @facilitate(其中redirect_to facilitates_path方法重定向回<%= @facilitate.answer %>方法中的索引转换为&#39; / facilit&#39;)。


修改

show示例适用于index视图,而不是index。 在<% @facilitate.each do |facilitate| %> <%= facilitate.answer %><br> <% end %> ,你可以做更多这样的事情:

{{1}}

列出所有内容。